成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

while、for、try except語句中的else

開發 后端
下面要看的是for,while循環和try異常處理語句中的else的用法。來看看吧。

[[383500]]

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

  1. if condition:  
  2.     doSomeThings  
  3. else:  
  4.     doAnthorThings 

以及 

  1. if condition1:  
  2.     do1  
  3. elif condition2:  
  4.     do2  
  5. else:  
  6.     doOtherThings 

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

一、for,while循環中的else

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

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

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

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

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

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

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

  1. try:  
  2.     result = a/b  
  3.     print(result)  
  4. except TypeError:  
  5.     print('輸入數字')  
  6. except ZeroDivisionError:  
  7.     print('被除數不能為零') 

采用else語句時的寫法: 

  1. try:  
  2.     result = a/b  
  3. except TypeError:  
  4.     print('輸入數字')  
  5. except ZeroDivisionError:  
  6.     print('被除數不能為零')  
  7. else:   
  8.     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中文社區 (ID:python-china)
相關推薦

2010-03-19 14:18:07

Java Socket

2010-09-03 15:47:40

SQL語句鎖定

2010-09-03 14:39:15

SQLSELECT語句

2020-06-28 09:08:08

Java語法塊開發

2010-09-03 11:25:58

SQL刪除

2010-09-03 14:47:50

SQLSELECT語句

2010-09-07 13:41:50

SQL語句

2010-09-07 16:38:36

SQL語句SELECT DIST

2010-11-25 15:57:49

mysql查詢語句

2017-08-02 06:10:07

Python編程語言for 循環

2020-04-30 08:22:52

try...excepPython代碼

2011-05-23 16:23:18

Pythonelse

2010-03-10 14:34:52

Python異常處理

2010-03-09 14:00:20

Python循環語句

2010-05-21 16:55:47

MySQL EXPLA

2010-04-13 14:43:37

Oracle性能檢測

2010-06-11 17:36:46

MySQL語句

2010-09-07 10:19:31

SQL語句

2010-09-07 14:56:49

SQL語句CASE WHEN

2011-09-08 16:30:59

SQL Server查詢
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 99热这里只有精品8 激情毛片 | 日韩一区二区三区在线观看视频 | 国产成人精品午夜 | 精品美女视频在线观看免费软件 | 7777在线 | 欧美久久不卡 | 国产精品久久影院 | 精品久久久久久久人人人人传媒 | 国产欧美日韩在线一区 | 久久精品国产99国产 | 一区二区三区视频在线免费观看 | 国产欧美一区二区三区日本久久久 | 欧美日韩视频 | 亚洲国产一区二区视频 | 久久久久久蜜桃一区二区 | 亚洲另类视频 | 久久国品片 | 国产在线精品一区二区 | 91精品国产91久久久久久密臀 | 久久综合伊人 | 成人a在线 | 日本人做爰大片免费观看一老师 | 中文字幕在线观看一区 | 国产成人精品午夜 | 亚洲国产精品99久久久久久久久 | 国产欧美日韩在线观看 | 91九色视频在线 | 国产精品1区2区 | 欧美亚洲高清 | 亚洲电影一区二区三区 | 欧美日韩在线观看视频网站 | 午夜小视频在线观看 | 亚洲欧美一区二区三区国产精品 | 久久99视频 | 色频 | www九色| 91五月婷蜜桃综合 | 在线观看国产 | 国产女人第一次做爰毛片 | 国产视频一区二区 | 日韩av免费在线观看 |