Python程式設計中特有的循環語句及其特點

WBOY
發布: 2023-04-12 12:13:16
轉載
1539 人瀏覽過

Python程式的追求的就是簡單而優雅,既無所不能,又接近人的自然表達模式。毋庸置疑,其簡潔而不簡單的魔力吸引力大量的擁躉。即便其語法和內建函數等,如若能簡寫或縮寫的,那就絕不會完整地寫出來。如果你習慣了這種寫法,再去看看「Spring式」長命名,你簡直都懷疑自己當初為什麼要敲那麼多次鍵盤——難道是為了鍛鍊身體?

Python程式設計中特有的循環語句及其特點

有點跑遠了,回到主題上來。我們知道,標準的程式碼執行流程的控制語句,就這麼幾種:順序執行、條件執行、循環執行以及這幾種的組合或/和嵌套。各類程式語言(如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中文網其他相關文章!

相關標籤:
來源:51cto.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板