for
循環用於迭代序列(即列表,元組,字典,集合或字符串)。
這與其他編程語言中的 for
關鍵字不太相似,而是更像其他面向對象編程語言中的迭代器方法。
通過使用 for
循環,我們可以為列表、元組、集合中的每個項目等執行一組語句。
打印 fruits 列表中的每種水果:
fruits = ["apple", "banana", "cherry"]
for x in fruits:
print(x)
注意:for
循環不需要預先設置索引變量。
通過使用 break
語句,我們可以在循環遍歷所有項目之前停止循環:
如果 x 是 “banana”,則退出循環:
fruits = ["apple", "banana", "cherry"]
for x in fruits:
print(x)
if x == "banana":
break
當 x 為 “banana” 時退出循環,但這次在打印之前中斷:
fruits = ["apple", "banana", "cherry"]
for x in fruits:
if x == "banana":
break
print(x)
通過使用 continue
語句,我們可以停止循環的當前迭代,並繼續下一個:
不打印香蕉:
fruits = ["apple", "banana", "cherry"]
for x in fruits:
if x == "banana":
continue
print(x)
Tips
:for
循環中的跳出與 while
循環一樣。
甚至連字符串都是可迭代的對象,它們包含一系列的字符:
循環遍歷單詞 “banana” 中的字母:
for x in "banana":
print(x)
如需循環一組代碼指定的次數,我們可以使用 range()
函數,range()
函數返回一個數字序列,默認情況下從 0
開始,並遞增 1
(默認地),並以指定的數字結束。
使用 range()
函數:
for x in range(10):
print(x)
注意
:range(10)
不是 0
到 10
的值,而是值 0
到 9
。
range()
函數默認 0
為起始值,不過可以通過添加參數來指定起始值:range(3, 10)
,這意味著值為 3
到 10
(但不包括 10
):
使用起始參數:
for x in range(3, 10):
print(x)
range()
函數默認將序列遞增 1
,但是可以通過添加第三個參數
來指定增量值:range(2, 30, 3)
:
使用 3 遞增序列(默認值為 1):
for x in range(3, 50, 6):
print(x)
for
循環中的 else
關鍵字指定循環結束時要執行的代碼塊:
打印 0
到 9
的所有數字,並在循環結束時打印一條消息:
for x in range(10):
print(x)
else:
print("Finally finished!")
Tips:
這裡同 while
循環也是一樣的,這樣寫的也比較少。
嵌套循環是循環內的循環。
“外循環”每迭代一次,“內循環”將執行一次:
打印每個水果的每個形容詞:
adj = ["red", "big", "tasty"]
fruits = ["apple", "banana", "cherry"]
for x in adj:
for y in fruits:
print(x, y)
for
語句不能為空,但是如果我們處於某種原因寫了無內容的 for
語句,請使用 pass
語句來避免錯誤。
for x in [0, 1, 2]:
pass
for
循環的跳出同 while
循環一樣。
但是 for
循環多用於迭代序列(即列表,元組,字典,集合或字符串)。
我們在使用 for
循環和 while
循環的時候一定要明白它們的應用場景。