在日常中,常有重複性相當高的事情,不斷地重複在做,重複的事做久就會慢慢變成是一個習慣,這個習慣就會讓人下意識地完成一些事情。
習慣是一種自動化的行為模式,這些行為模式在重複進行的過程中變得固定且容易自動化。
在Python程式語言中,for迴圈就類似這種概念,只是要先預設要做幾次的設定,不同於其他程式語言會定義疊代步驟與終止條件來執行,在Python中是疊代任何序列(list 或者字串)的元素,根據序列的索引的長度來決定跑幾次。
for 變數 in 可迭代對象:
# 在這裡執行相應的程式碼
這將遍歷 fruits
列表中的每個元素,將它們賦值給 fruit
,然後執行print(fruit)
。
fruits
列表長度為3,所以for迴圈會跑三圈,依序將fruits
列表的內容依序印出
fruits = ['apple', 'banana', 'cherry']
print(f'fruits序列長度: {len(fruits)}') #len()印出序列長度
for fruit in fruits:
print(fruit)
range()
函數若要做到像其他程式語言的也設定一個數字,讓For圈去執行重複性的工作,就要用到range()函數先產生一個迭代數字序列。
range_list = list(range(5)) #range(5)迭代數字序列
print(range_list)
for i in range(5):
print(f'跑了第幾{i}圈')
小時候都要背九九乘法表,我們來用Python寫出九九乘法表吧。
這時候就要利用到巢狀迴圈,兩層for迴圈來完成
巢狀迴圈是指在迴圈內部包含另一個迴圈
for i in range(1, 10): #外迴圈
for j in range(1, 10): #內迴圈 全做完在會在回到外迴圈
print(f"{i} * {j} = {i*j}", end='\t') # end='\t'跳格
print()
我們用簡單範例,來拆解巢狀迴圈,若跑到內迴圈就會執行完內迴圈,才會再回到外迴圈,讓我們看以下範例執行出來的結果,比較好理解這流程。
走外迴圈時就印出 外迴圈第幾圈
走內迴圈就印出 現在是內迴圈第幾圈
在新增一個if來判斷內迴圈走到第三圈時印出提醒,走完囉,該走外迴圈了
range(1,4)會生成一個包含 1 到 3 的整數序列。
for i in range(1,10):
print(f'外 迴圈第{i}圈')
for j in range(1,4):
print(f'內 迴圈第{j}圈')
if j == 3:
print('----內迴圈走完----')
這個例子中,student_grades
是一個字典,外部迴圈遍歷每個學生,內部迴圈遍歷每個科目和分數。
student_grades
該字典包含了學生的名字作為鍵,而值是每個學生的成績是一個包含科目和分數的字典
外迴圈 : 取出student
的名字,再將子字典命名為grades
讓內迴圈做使用
內迴圈:取出student
科目及分數,在印出
字典的介紹可以參考 : 「Python基礎」容器:字典{ dit }集合{set}
student_grades = {
'Alice': {'Math': 90, 'English': 85, 'Science': 88},
'Bob': {'Math': 75, 'English': 92, 'Science': 80}
}
for student, grades in student_grades.items():
print(f"{student}'s grades:")
for subject, score in grades.items():
print(f"{subject}: {score}")
print()
student_grades = {
'Alice': {'Math': 90, 'English': 85, 'Science': 88},
'Bob': {'Math': 75, 'English': 92, 'Science': 80}
}
這裡定義了一個字典 student_grades
,包含兩位學生(Alice 和 Bob)的成績。每位學生的成績以子字典的形式存儲,其中鍵是科目(Math、English、Science),值是分數。
[Python基礎]流程控制while迴圈,break ,continue