我讓Jose把40個(gè)學(xué)生的名字逐行打印出來(lái)。
他看了我一眼,開(kāi)始敲鍵盤(pán):print("Amina")。我等他敲到第三個(gè)名字才喊停。
![]()
"如果名單有1萬(wàn)人呢?如果每周都變呢?"這就是教循環(huán)的秘訣——不先講概念,先讓人體會(huì)沒(méi)有循環(huán)的痛苦。解藥來(lái)的時(shí)候,感受完全不同。
Python的for循環(huán)干一件事:遍歷集合里的每個(gè)元素,逐個(gè)處理。我用課堂點(diǎn)名打比方——老師按順序叫名字,標(biāo)記出勤,一個(gè)不落,不提前停,直到名單結(jié)束。
代碼只有三行:
students = ["Amina", "Brian", "Njeri", "Kamau", "Wanjiku"]
for student in students:
print(f"Good morning, {student}!")
5個(gè)名字,1個(gè)循環(huán)。名單變成1萬(wàn)個(gè),代碼不動(dòng)。Jose刪掉寫(xiě)了一半的print語(yǔ)句,這種反應(yīng)是我最?lèi)?ài)這堂課的原因。
有時(shí)候你沒(méi)有現(xiàn)成列表,只想重復(fù)執(zhí)行固定次數(shù)。這時(shí)候用range():
for i in range(5):
print(f"Attempt {i + 1}")
輸出Attempt 1到5。但這里有個(gè)坑——range(5)生成的是0到4,不是1到5。每屆學(xué)生都會(huì)問(wèn)同一個(gè)問(wèn)題:為什么?
因?yàn)镻ython像程序員一樣計(jì)數(shù):從0開(kāi)始。range(5)的意思是"給我5個(gè)數(shù),從0起",所以是0、1、2、3、4。想要1到5,得明說(shuō):range(1, 6)。
還能按步長(zhǎng)跳:
for km in range(0, 51, 10):
print(f"Distance covered: {km} km")
0公里、10公里……50公里,像內(nèi)羅畢的matatu小巴每10公里停一站。
光打印名字不夠,得干點(diǎn)實(shí)在的。我們升級(jí)成處理數(shù)據(jù):
scores = [78, 45, 92, 61, 55, 88, 34, 73]
total = 0
for score in scores:
total = total + score
average = total / len(scores)
求總分、算平均,循環(huán)里做的是真正的工作。
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶(hù)上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.