亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python中while、for、try except語句中的else有什么區別

發布時間:2021-06-17 17:54:20 來源:億速云 閱讀:243 作者:chen 欄目:編程語言

這篇文章主要介紹“python中while、for、try except語句中的else有什么區別”,在日常操作中,相信很多人在python中while、for、try except語句中的else有什么區別問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”python中while、for、try except語句中的else有什么區別”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

Python中的else是基礎的語句,它的兩種使用形式是:

if condition:      doSomeThings  else:      doAnthorThings

以及

if condition1:      do1  elif condition2:      do2  else:      doOtherThings

這兩個用法理解起來沒有問題。下面要看的是for,while循環和try異常處理語句中的else的用法。

一、for,while循環中的else

for,while循環中,else用于循環正常結束,且循環體中沒有break、return和異常拋出,則執行else語句塊中的內容。 例如,我們判斷列表ls中是否全是奇數。普通情況下,需要引入一個標志變量allOdd,指示所有變量都是奇數,有偶數出現則將此變量設為False。寫法如下:

ls = [1, 3, 5, 7, 9]  allOdd = True  for i in ls:      if i % 2 == 0:          allOdd = False          break  if allOdd:      print('list ls %r constructed by only odd number' % ls)  else:      print('list ls %r ** is\'t ** constructed by only odd number' % ls)

利用else指示循環正常結束的功能,采用for循環或者while循環加else的寫法如下:

for i in ls:      if i %2 == 0:          print('list ls %r ** is\'t ** constructed by only odd number' % ls)          break  else:      print('list ls %r constructed by only odd number' % ls)

可見,for循環使用else語句之后,節省了指示性變量allOdd,以及相應的處理語句。整個程序語義上更簡潔、邏輯上更順暢。

二、try異常處理語句中的else

try except異常捕獲處理語句中,else定義用于沒有異常出現時執行的部分。 例如,當我們處理有可能導致異常的計算時,else語句定義的部分,可以確保沒有異常發生,得到了正確計算結果。例子是計算簡單的除法。普通寫法:

try:      result = a/b      print(result)  except TypeError:      print('輸入數字')  except ZeroDivisionError:      print('被除數不能為零')

采用else語句時的寫法:

try:      result = a/b  except TypeError:      print('輸入數字')  except ZeroDivisionError:      print('被除數不能為零')  else:       print('計算結果%r'%result)

也就是說,try except else finally分別對應如下關系:

  •  try       可能拋出異常的語句。

  •  except    捕獲異常,處理異常。

  •  else      無異常,明確得知try語句中無異常。而不是這兩種情況:有異常;有異常但處理了。

  •  finally   有或無異常,都執行的語句,一般為關閉、清理工作。

else語句在try except句法中最主要的功能,是明確指出了沒有異常出現時才執行的語句塊。與出現異常,或者出現異常并且處理了這兩種情況是分開的。這個語法塊是在沒有異常出現時執行的,保證了環境的正確性。

三、簡單總結

  •  for while循環中,else用于循環正常結束,且循環體中沒有break、return或異常拋出,則執行else語句塊中的內容。

  •  try except異常捕獲處理語句中,else是定義用于沒有異常出現時執行的部分。

  •  不同于if else 語句,以上兩種else用法看起來有些復雜。簡單理解,可以把else語句塊當做語句主體中“沒有幺蛾子“時執行的語句塊。這樣就可以簡單理解了else的兩種用法了。

  •  許多人反對在此處復用else關鍵字來表達除外情況,認為then關鍵字或許更好(luciano ramalho《fluent python》),更甚者主張遵循“最小驚訝原則”,即在for和while語境里不要用else關鍵字,以免它給人帶來疑惑(Brett Slatkin《Effective Python》)。筆者認為,如果把兩處else統一理解為“沒有出現問題,沒有幺蛾子”,那么此時的else語法會變成一個很有用的技巧。 

到此,關于“python中while、for、try except語句中的else有什么區別”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宜宾县| 兰溪市| 滁州市| 社旗县| 扬中市| 沂南县| 名山县| 当涂县| 汶川县| 深州市| 禹州市| 和静县| 平和县| 安乡县| 类乌齐县| 怀远县| 大冶市| 保山市| 清河县| 漳平市| 肇东市| 敦化市| 衡阳市| 黄山市| 肥西县| 昌图县| 阿勒泰市| 元氏县| 都安| 西和县| 尉氏县| 西乌珠穆沁旗| 沙坪坝区| 古蔺县| 赤城县| 色达县| 汝城县| 柳林县| 秭归县| 和田市| 启东市|