前兩章中,我們跟著海綿寶寶的故事,掌握了?while
?循環和?for
?循環,這兩種不同的循環模式。while
?循環和?for
?循環都需要有?循環體?和?縮進,我們來復習一下它倆的語法規則:
while
?循環與?for
?循環辨析
學到這里,對于?while
?循環與?for
?循環要怎么用,你已經相當熟悉啦,它們都能滿足將某件事重復多次的需求。下面這兩段代碼都能將“美味蟹黃堡”打印 3 遍,只是?for
?循環代碼要更簡潔:
# while 循環
i = 0
while i < 3:print('美味蟹黃堡')i += 1 # 還記得 i += 1 是 i = i + 1 的縮寫嗎?# for 循環
for i in range(3):print('美味蟹黃堡')
這么一看,while
?循環和?for
?循環的功能似乎沒有差異呀?那 Python 中何必還要有兩種不同的循環語句呢?
要回答這個問題,首先要理清楚兩種循環的不同之處,二者最大的區別在于?循環次數是否確定,我們結合兩種循環的終止條件來理解一下。
先來看?for
?循環。for
?循環的執行邏輯很好理解,遍歷序列,遍歷結束后循環終止。所以說,for
?循環的循環次數是確定的,序列中有多少個元素,循環就執行多少次:
# 循環次數確定
names = ['海綿寶寶', '派大星', '泡芙老師', '珊迪', '蟹老板']
for i in names:print(i)
而?while
?循環是在條件不滿足時終止循環,我們不需要給出一個確定的循環次數。所以,如果你也不確定要讓 Python 把某件事重復多少遍,那用?while
?循環就剛好合適:
# 循環次數不確定
name = ''
while name != '海綿寶寶':name = input('猜猜我是誰?')
大多數情況下,兩種循環是通用的,但像上面這個例子一樣的猜名字、猜數字問題,只能通過?while
?循環來實現。
總結一下,while
?循環和?for
?循環有著完全不同的循環模式。寫?for
?循環時,我們無需額外去思考循環的終止條件,只需要提供待遍歷的數據;寫?while
?循環則不一樣,無需關心循環的執行次數,只需要提供清晰有效的循環條件。
兩種循環在大多數情況下通用,但各自的特點決定了它們更適合用來解決兩類不同的循環問題:
編程練習
仿照課程中的例子,我們給海綿寶寶寫一個工作提醒器吧。要求:
- 詢問是否下班了,并使用變量?
answer
?獲取用戶輸入; - 如果用戶輸入的不是?下班了,就重復打印?小海綿努力工作中……,并再次詢問是否下班了。
- 如果輸入的是?下班了,就結束循環,并打印?回家找小蝸啦。
想想看,哪種循環適合解決這個問題呢?🤔
answer = input('下班了嗎?輸入下班了/沒下班')
working = '小海綿努力工作中……'
go_home = '回家找小蝸啦'
因為前面幾章的練習,都是一些固定參數的循環,到這反而有點不習慣了,但是自己觀察就會發現,其實邏輯上還是一樣的,知識多了一個 input()
answer = input('下班了嗎?輸入下班了/沒下班')
working = '小海綿努力工作中……'
go_home = '回家找小蝸啦'while answer != '下班了':print(working)answer = input('下班了嗎?輸入下班了/沒下班')print(go_home)
兩位循環魔法師各有所長,有了他們的加入,蟹黃堡產能大爆發,到店的客人絡繹不絕,連食材供應都跟不上了。
大 Boss 蟹老板囑咐海綿寶寶,一定要做好食材管理,如果倉庫里的食材已經不夠了,那無論是否還有客人等待,都停止做蟹黃堡。
新需求來了!我們不僅要告訴 Python 循環在何時執行,還要在某個時刻強制終止循環。一切的一切,都需要我們對循環進行更精細的控制。
下面一篇文章就讓我來帶你認識兩種常用的?循環控制語句(break與continue)。