基礎
for loop 通常用來做重複的事情或疊代 (iteration) 序列 (sequence) 中的元素,寫法如下
for el in sequence:
# do something...
序列有:list、tuple、dictionary、set、string
numbers = [1, 2, 3]
for num in numbers:
print(num)
# 依序印出 1 2 3
myString = "ABC"
for str in myString:
print(str)
# 依序印出 A B C
如果 loop dictionary 會印出他的 key
myDict = {
"brand": "Ford",
"model": "Mustang",
"year": 1964
}
for key in myDict:
print(key)
# brand
# model
# year
如果 loop dictionary list 會印出 dictionary
dict_list = [{
"brand": "Ford",
"model": "Mustang",
"year": 1964
}, {
"brand": "Ford",
"model": "Mustang",
"year": 1964
}]
for dict in dict_list:
print(dict)
# {'brand': 'Ford', 'model': 'Mustang', 'year': 1964}
# {'brand': 'Ford', 'model': 'Mustang', 'year': 1964}
range() function
也可以使用 range(start, end, step)
來跑迴圈
start
起始值,預設值為 0。end
結束值,必填,且不包含此數。step
,代表每次遞增的間距,預設值為 1。
for key in range(3):
print(key)
# 會依序印出 0 1 2;range(3) = range(0, 3, 1)
for key in range(1, 10, 2):
print(key)
# 會依序印出 1, 3, 5, 7, 9
for key in range(10, 1, -2):
print(key)
# 會依序印出 10, 8, 6, 4, 2
停止或繼續迴圈
可以視情況使用 break
、 continue
、 pass
來決定迴圈的停止或繼續。
如果在迴圈內用了 break
,這迴圈就會被硬生生地被結束,結束 for 區塊,進入下一個部分的程式碼;而 continue
只是跳過這回合剩下的部分,進入下一回合,下面用宗教輪迴來白話解說
break 打破輪迴
原本預計輪迴四次,但在第二世時觸發指定條件就會提前結束輪迴
for num in range(1, 5):
if num == 2:
print(f"第{num}世, 修德善果")
break
else:
print(f"第{num}世走完")
print('輪迴結束')
# 第1世走完
# 第2世, 修德善果
# 輪迴結束
continue 直接下一世
觸發指定條件後會直接結束這一回合剩下的人生,然後轉世繼續輪迴
for num in range(1, 5):
if num == 2:
print(f"第{num}世提前結束")
continue
print(f"第{num}世走完")
print('輪迴結束')
# 第1世走完
# 第2世提前結束
# 第3世走完
# 第4世走完
# 輪迴結束
pass 先不要
遇到 pass
會執行語法檢查,但並不會做任何動作,就是一個有跟沒寫一樣的語句,通常被拿來當佔位符用。例如:我們 sayHi 完要做某事,但暫時還沒想到要做啥事,就可以寫
def sayHi(name):
print(f"Hi, {name}!")
def doSomething():
pass # 如果沒有 pass 會報錯
sayHi('Lai')
doSomething()
print('Bye~')
# Hi, Lai!
# Bye~