Python程式的追求的就是簡單而優雅,既無所不能,又接近人的自然表達模式。毋庸置疑,其簡潔而不簡單的魔力吸引力大量的擁躉。即便其語法和內建函數等,如若能簡寫或縮寫的,那就絕不會完整地寫出來。如果你習慣了這種寫法,再去看看「Spring式」長命名,你簡直都懷疑自己當初為什麼要敲那麼多次鍵盤——難道是為了鍛鍊身體?
有點跑遠了,回到主題上來。我們知道,標準的程式碼執行流程的控制語句,就這麼幾種:順序執行、條件執行、循環執行以及這幾種的組合或/和嵌套。各類程式語言(如C/C 、Java、JavaScript、PHP、go等)在具體語法上實作各有差異,但基本雷同:if-else結構、while結構、for結構等。
這裡要說的是Python的循環結構語法的常規拓展模式,以while為例,其常規語法結構如下:
while condition: #循环体 pass
這是典型的使用形式。其拓展結構如下:
while conditon: #循环体 pass else: #while循环体执行完 pass
這種while-else結構與if-else結構不同之處在於if結構下只能執行其中的一種情況(滿足條件的),而while結構通常兩部分都會執行的。範例如下:
counter =0 while counter<5: counter+=1 print(f"counter={counter}") else: print(f"while结束了,进入else部分:当前counter={counter}")
執行上面的程式碼,輸出結果如下:
counter=1
counter=2
counter=3
counter=4
counter=5
while結束了,進入else部分:目前counter=5
這個程式碼沒啥故事,也容易理解。但我換個形式再看看效果:
counter =0 while True: counter+=1 print(f"counter={counter}") if counter>=5: break else: print(f"while结束,else部分...,counter={counter}")
運行程序,輸出類似如下:
counter=1
counter=2
counter =3
counter=4
counter=5
完犢子了,else部分不執行了…
當然,Python的for-else結構也一樣,這裡就不舉例了,有興趣的自己試試看。這裡我想說的是,在Python的「循環-else」結構中,如果使用了break提出循環,它就跳出了整個循環結構,而循環所帶的else部分也是整個循環的一部分。所以,想在循環體工作結束後再乾點掃尾工作,那一定注意不要用break跳出。
當初我在跟學生介紹這個結構時,說這個文法貌似沒有很雞肋。你Python不是追求簡潔嗎,為while/for添個else,沒有它會死嗎?你想在else裡做的事情,不用else也一樣能幹。
後來我遵循Python的「人性化」指導哲學又想了想:這就像在飯店吃飯,正常吃完結帳(正常事情),出去時順帶在飯店門口抓把糖倒杯水(掃尾工作);但如果你吃飯時吃出個異物來,不能繼續愉快就餐了走了(非正常終止-break了),哪還有心情喝水吃糖? ——可能就是這個意思吧 ^_& 。
Python程式設計還是很有意思的,但更多在於用Python去解決實際問題。所以Python語法很容易學,但要能靈活的使用Python去解決問題還有很多函式庫和框架要學習。
今天就寫這些了,其它Python特異的程式設計特殊實現,下次再寫。
以上是Python程式設計中特有的循環語句及其特點的詳細內容。更多資訊請關注PHP中文網其他相關文章!