前言
此部分與迴圈概念相關,包括 for loop 和 while 迴圈,並且搭配 if...else
的使用讓我們可以簡化重複的計算或是操作。讓日常生活中需要持續複製貼上的事情,可以透過迴圈來自動完成。
for迴圈
迴圈的用途就在解決重複執行的工作。當你覺得重複計算有點繁瑣時,或許就是迴圈派上用場的時候了
# 迭代 簡單來說就是可以透過迴圈一個個取出該物件中的元素
for 變數名稱 in 可迭代物件(Iterators,ex. list, dict 等):
程式區塊
使用情境:
取出容器物件內的元素時,例如:list 或是 set。可以使用 for 迴圈,一個個取出該物件中的元素:
languages = ['Python','Java','C++']
#list容器中有三個字串物件元素
for language in languages:
print(language)
#一一列印languages中的元素
another example:
計算 1-5 的數字加總,若是沒有使用迴圈則需要手動多行重複計算,才能完成任務:
#手動計算:
result = 0
result +=1
result +=2
result +=3
result +=4
result +=5
#for 迴圈:
result =0
#創建一個變數 result 並將其初始值設為 0。
for i in range(6):
#使用 for 迴圈,迭代變數 i 在範圍從 0 到 5(不包括 6)的整數。
result +=i
#在每次迴圈中,將 result 的值加上 i 的值。
練習:迴圈數字累加器
請設計一個程式可以讓使用輸入希望從多少數字開始累加到多少數字(兩個使用者輸入變數,一個為起始值,一個為結束值),然後使用 for 迴圈印出累加結果(含結束值)。舉例:使用者輸入 0 和 10 代表從 0 累加到 10,結果應該為 55。
start_num = int(input('請輸入累加數字的起始值: '))
end_num = int(input('請輸入累加數字的結束值: '))
result = 0
#建立result容器
for i in range(start_num, end_num + 1):
#迭代變數i從起始值累加到結束值(為了包含結束值,需要將結束值+1)
result +=i
#每次迴圈中,將result加上i值
print(result)
迭代 list/dict 物件
透過 for 迴圈來取出容器物件(list, dict 等)內容,以下是取出 list 元素的範例:
languages =['Pyhton', 'Java', 'JavaScript']
for languages(迭代變數) in languages(指定要迭代的列表):
print(languages)
取出列表(list)中的index(索引,位置)和value,可以使用 enumerate()
:
languages = ['Java', 'C', 'Python']
for index, value in enumerate(languages):
print(index, value)
#0, java
#1, C
#2, python
使用 items()
迭代取出 dict 的 key/value:
language_ranking_dict ={
'Java':12,
'Python':23,
'C':2
}
for key, value in language_ranking_dict.items():
print(key, value)
#key, value 可以自己定義變數名稱,其值為 dict 取出來的 key 和 value
#Java 12
#Python 23
#C 2
or
invite_list = {
'Jack': True,
'Leo': True,
'Mike': False,
'Jane': False,
'Andy': True,
'Ben': False
}
for i in invite_list.items():
print(i)
#('Jack', True)
#('Leo', True)
#('Mike', False)
#('Jane', False)
#('Andy', True)
#('Ben', False)
變數名稱不會有影響,以i變數為例:
invite_list = {
'Jack': True,
'Leo': True,
'Mike': False,
'Jane': False,
'Andy': True,
'Ben': False
}
#建立了一個字典 invite_list,其中包含了不同人的名字作為鍵,而對應的值為布林值,表示邀請是否被接受。
people = 0
#初始化變數 people,用來計算接受邀請的人數。
for key, i in invite_list.items():
#使用 for 迴圈遍歷 invite_list 字典中的鍵值對(key&value)。key 取得字典的鍵,i 取得對應的值。
if i == True:
#條件判斷,檢查值 i 是否為 True。
people += 1
#條件成立(即值為 True),則將計數變數 people 遞增 1。
print(people)
練習:迭代 list 物件
使用 for 迴圈將 list
中的 index/value 印出。
names = ['Tom', 'Leo', 'Jack']
for index, value in enumerate(names):
print(index, value)
練習:迭代 dict 物件
使用 for 迴圈將 dict 中的 key/value 印出。
user_ranking_dict = {
'Tom': 12,
'Leo': 1,
'Jack': 20
}
for people, num in user_ranking_dict.items():
print(people, num)