Loops & Iterations
forfor i in range(5):
print("Hello")
產生 0 到 n-1 的數列:range(5) → 0, 1, 2, 3, 4
range() 的變化range(5) # 0, 1, 2, 3, 4
range(1, 6) # 1, 2, 3, 4, 5
range(0, 10, 2) # 0, 2, 4, 6, 8 (每次跳 2)
range(10, 0, -1)# 10, 9, 8, ..., 1 (倒數)
實際應用:
# 印出 1 到 10 的總和
total = 0
for i in range(1, 11):
total += i
print(f"1 到 10 的總和是 {total}") # 55
# 九九乘法表(其中一段)
for i in range(1, 10):
print(f"3 × {i} = {3 * i}")
for item in fruits:
fruits = ["蘋果", "香蕉", "芒果"]
for fruit in fruits:
print(f"我喜歡吃 {fruit}")
也可以遍歷字串:
for char in "Python":
print(char)
whilecount = 0
while count < 5:
count += 1
print(count)
確保迴圈條件最終會變成 False,否則程式會永遠執行。用 Ctrl+C 中斷。
猜數字遊戲:
secret = 42
guess = 0
while guess != secret:
guess = int(input("猜一個數字:"))
if guess < secret:
print("太小了!")
elif guess > secret:
print("太大了!")
print("恭喜!猜對了!")
for:知道確切的執行次數時用。
while:條件不確定、直到某件事發生才停止時用。
break 與 continuebreak # 跳出迴圈
# break — 找到目標就停止
for i in range(1, 100):
if i % 7 == 0:
print(f"第一個 7 的倍數:{i}")
break # 找到就停
# continue — 跳過這次,繼續下一次
for i in range(1, 11):
if i % 2 == 0:
continue # 跳過偶數
print(i) # 只印奇數:1 3 5 7 9
# enumerate — 同時取得索引和值
fruits = ["蘋果", "香蕉", "芒果"]
for i, fruit in enumerate(fruits):
print(f"{i+1}. {fruit}")
# 1. 蘋果 2. 香蕉 3. 芒果
# zip — 同時遍歷兩個清單
names = ["Alice", "Bob", "Charlie"]
scores = [95, 82, 78]
for name, score in zip(names, scores):
print(f"{name}:{score} 分")
squares = [x**2 for x in range(1, 6)]
# [1, 4, 9, 16, 25]
用迴圈完成以下任務:
# 任務 1:印出九九乘法表
for i in range(1, 10):
for j in range(1, 10):
print(f"{i}×{j}={i*j}", end="\t")
print() # 換行
# 任務 2:找出 1~100 所有質數
for num in range(2, 101):
is_prime = True
for i in range(2, int(num**0.5) + 1):
if num % i == 0:
is_prime = False
break
if is_prime:
print(num, end=" ")
學會了 for、while、break、continue 以及迭代技巧。