Python入門 教學for和while迴圈超詳細用法教學: for迴圈是常用的迭代結構,常見於多個不同程式語言,又被稱為計次型迴圈,
與之相對的while迴圈就是條件型迴圈,使用條件來判斷是否進入迴圈,需要注意的是,這兩個迴圈結構都是先判斷條件,再進入迴圈,也就是說:
程式開始 -> 判斷條件 -> (成立)執行 -> 判斷條件 -> (成立)執行 -> 判斷條件 -> (不成立)終止
這篇文章會詳細探討for 和 while的差異
Python for 迴圈
for 元素 in 序列:
上面是for迴圈的基本結構,裡面的”元素”變數會依序指向”序列中的元素”
如果您是剛接觸Python,也可以看成這樣
for 變數 in 集合:
這個變數會在程式中變化,指向集合中的一個個內容
例如:
# 定義一個字串
message = "Hello, World!"
# 使用for迴圈遍歷字串中的每個字符
for char in message: #char是變數 #message是字符的集合
print(char)
H
e
l
l
o
,
W
o
r
l
d
!
如你所見,”char”這個變數逐一地指向了”Hello, World!”(也就是message)的每一個字元,然後輸出出來
再來一個例子:
# 使用 for 迴圈遍歷範圍內的數字
for i in range(0, 5, 1): #也可以寫成range(5)
print(i)
0
1
2
3
4
在for迴圈中,我們時常會搭配range函數來更方便的計數
用法如下range(起始值, 終止值, 步長),
要千萬注意的是,range函數為左閉右開區間,永遠不會跑報到終止值上,從上面的例子也可以看出來,輸出到四就停了。不過重要的是,輸出了0, 1, 2, 3, 4共5個數字(5次),因此for迴圈又被稱為計次型迴圈。
最後至於步長,就是一次跳幾個數,我們看下面的例子就理解了
# 每兩個輸出一次
for i in range(1, 10, 2):
print(i)
輸出:
1
3
5
7
9
如果你已經理解了,那我們來試試下面的題目
解答(僅供參考,可以更簡單):
t = int(input())
for i in range(1,t+1):
a = [int(x) for x in input().split()]
if a[0]+a[3]==a[1]+a[2]:a.append(a[3]*2-a[2])
else:a.append(a[3]*a[3]//a[2])
print(*a)
continue & break
使用 continue
時,迴圈會跳過當前迭代的剩餘程式,並繼續下一次迭代
而break則會強制跳出迴圈,真的就把迴圈break掉
例子:
# 定義一個字串
message = "Hello, World!"
# 使用for迴圈遍歷字串中的每個字符
for char in message:
if char == ',':
continue
print(char)
輸出:
H
e
l
l
o
W
o
r
l
d
!
可以看到,逗號被跳過了。而下面,是同一個例子,不過把continue換成break
# 定義一個字串
message = "Hello, World!"
# 使用for迴圈遍歷字串中的每個字符
for char in message:
if char == ',':
break
print(char)
輸出
H
e
l
l
o
可以看到,輸出時到達逗號後直接被終止了
Python while迴圈
while是python中另一種迴圈結構,他的長相如下
while 條件:
# 執行程式
怎麼樣,看起來是不是更簡單了呢,這個條件可以是大於,小於,甚至是布林值,只要他能判定True or False的判斷式就可以,於是有了下面的例子
# 初始化計數器
count = 1
# 使用 while 迴圈
while count <= 5:
print(count)
count += 1 # 將計數器遞增
輸出:
1
2
3
4
5
至於continue與break,與for迴圈的用法一致,就不多加贅述,比較有趣的是,我們可以運用while(1)+break做出無窮迴圈
while(1)
例子:
# 初始化計數器
count = 1
# 使用 while 迴圈
while True: #或 while 1
print(count)
count += 1 # 將計數器遞增
if count > 5:
break # 當計數器超過 5 時停止迴圈
輸出
1
2
3
4
5
不過這裡千萬要注意的是,使用while(1)時,一定要注意終止條件,不然會跑不完而產生RunTimeError
本篇的教學到此結束,關於此篇文章有甚麼想法歡迎留言,也可以看看我的深度學習或AI繪圖相關文章喔!