小白學python系列-(7)迴圈

宋寶康發表於2018-04-06

迴圈

Python的迴圈有兩種:

for...in

第一種是for...in迴圈,依次把list或tuple中的每個元素迭代出來,看例子:

student = ['同學2', '銅須3', '銅須4', '銅須6']
for name in student:
    print('名字為:'+name) 
複製程式碼
名字為:同學2
名字為:銅須3
名字為:銅須4
名字為:銅須6
複製程式碼

所以for x in ...迴圈就是把每個元素代入變數x,然後執行縮排塊的語句。

如果要計算1-100的整數之和,從1寫到100有點困難,幸好Python提供一個range()函式,可以生成一個整數序列,再通過list()函式可以轉換為list。比如range(5)生成的序列是從0開始小於5的整數:

sum = 0
for x in range(5):
    sum = sum + x
print(sum) 
複製程式碼
10
複製程式碼

while

第二種迴圈是while迴圈,只要條件滿足,就不斷迴圈,條件不滿足時退出迴圈。
比如我們要計算100以內所有奇數之和,可以用while迴圈實現:

sum = 0
n = 99
while n > 0:
    sum = sum + n
    n = n - 2
print(sum)
複製程式碼
2500
複製程式碼

在迴圈內部變數n不斷自減,直到變為-1時,不再滿足while條件,迴圈退出。

break

在迴圈中,break語句可以提前退出迴圈。例如,本來要迴圈列印1~100的數字,如果要提前結束迴圈,可以用break語句:

n = 1
while n <= 100:
    if n > 10: # 當n = 11時,條件滿足,執行break語句
        break # break語句會結束當前迴圈
    print(n)
    n = n + 1
print('END')
複製程式碼

執行上面的程式碼可以看到,列印出1~10後,緊接著列印END,程式結束。 可見break的作用是提前結束迴圈。

continue

在迴圈過程中,也可以通過continue語句,跳過當前的這次迴圈,直接開始下一次迴圈。 如果我們想列印1~10奇數,可以用continue語句跳過某些迴圈:

n = 0
while n < 10:
    n = n + 1
    if n % 2 == 0: # 如果n是偶數,執行continue語句
        continue # continue語句會直接繼續下一輪迴圈,後續的print()語句不會執行
    print(n)
複製程式碼

執行上面的程式碼可以看到,列印的不再是1~10,而是1,3,5,7,9。

可見continue的作用是提前結束本輪迴圈,並直接開始下一輪迴圈。

總結:
break語句可以在迴圈過程中直接退出迴圈,而continue語句可以提前結束本輪迴圈,並直接開始下一輪迴圈。這兩個語句通常都必須配合if語句使用。
要特別注意,不要濫用break和continue語句。break和continue會造成程式碼執行邏輯分叉過多,容易出錯。大多數迴圈並不需要用到break和continue語句。

相關文章