[Py 百日馬 Day 5] for 迴圈 (for loop)


Posted by Laihan on 2022-03-10

基礎

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

停止或繼續迴圈

可以視情況使用 breakcontinuepass來決定迴圈的停止或繼續。
如果在迴圈內用了 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~

參考資料


#Python







Related Posts

Angular 專案使用 Font Awesome Free Icon

Angular 專案使用 Font Awesome Free Icon

NoSQL, Transaction, ACID and Lock

NoSQL, Transaction, ACID and Lock

Day05 git 柳暗花明

Day05 git 柳暗花明


Comments