# 在循環體中,針對每次迭代的 "變量" 做相應的操作

示例

fruits = ["apple", "banana", "orange"]
for fruit in fruits:
print("I like", fruit)
# 輸出
I like apple
I like banana
I like orange
message = "Hello"
for letter in message:
print(letter)
# 輸出
H
e
l
l
o

可迭代對象是可以用循環(如 for)逐個訪問元素的數據集合,比如列表、字符串、字典等。例如,遍歷 ["蘋果", "香蕉"] 時,循環會依次取出“蘋果”和“香蕉”。它代表一種“可依次取出內容”的特性。

2.2 使用 range() 生成數字序列

如果我們想循環執行固定次數,一種常見方法是結合 range() 函數來使用。range(n) 會生成從 0 到 n-1 的整數序列。

for i in range(5):
print(i)
# 輸出
0
1
2
3
4

range(start, end, step) 可以指定起始值——start、結束值(不含)——end和步長——step,步長沒有指定的話默認是1。

# 從1到5(不含5),步長為1
for num in range(1, 5):
print(num)
# 輸出
# 1
# 2
# 3
# 4
# 從1到10(不含10),步長為2
for num in range(1, 10, 2):
print(num)

# 輸出
# 1
# 3
# 5
# 7
# 9

三、while 循環

3.1 基本語法

while 循環適用于我們不知道具體循環次數,但想在某個條件滿足前一直循環的場景。語法如下:

while 條件表達式:
# 只要 條件表達式 為 True,就持續執行這個代碼塊
# 當 條件表達式 為 False,循環結束

示例:計算 1 到 100 的和

sum_value = 0
n = 1

while n <= 100:
sum_value += n
n += 1

print("1 到 100 的和是:", sum_value)
# 輸出
1 到 100 的和是: 5050

代碼解釋:

3.2 可能出現的“無限循環”

如果你不小心遺漏了更新循環條件的語句(比如上例中的 n += 1),就可能導致 while 永遠都不變為 False,從而陷入無限循環。在實際寫代碼時要留意確保循環能正確終止,否則你的程序可能會卡住或占用大量資源。

四、循環控制語句:break、continue、else

4.1 break 語句

break 用于立即終止當前循環。比如我們想讓用戶猜數字,如果猜對就結束循環:

secret = 7
while True:
guess = int(input("猜一個數字(1-10):"))
if guess == secret:
print("恭喜你,猜對了!")
break # 猜對就退出循環
else:
print("不對哦,再試試")
# 輸出
猜一個數字(1-10):1
不對哦,再試試
猜一個數字(1-10):6
不對哦,再試試
猜一個數字(1-10):7
恭喜你,猜對了!

只要用戶猜對,break 就會讓循環立刻停止。

4.2 continue 語句

continue跳過當前循環迭代,直接進入下一次循環。一般用來忽略某些特殊情況:

for i in range(1, 6):
if i == 3:
continue # 跳過 i=3 這次循環
print(i)
# 輸出
1
2
4
5

4.3 else 與循環

Python 允許在 forwhile 循環后面寫 else,只有當循環沒有被 break 或異常跳出時,才會執行 else 塊。一個常見場景是查找元素:

numbers = [1, 2, 3, 4, 5]
target = 3

for num in numbers:
if num == target:
print("找到目標數字:", target)
break
else:
print("沒有找到目標數字")
# 輸出
找到目標數字: 3
numbers = [1, 2, 3, 4, 5]
target = 6 # 把目標數字改為6

for num in numbers:
if num == target:
print("找到目標數字:", target)
break
else:
print("沒有找到目標數字")
# 輸出
沒有找到目標數字

五、循環的嵌套與復雜應用

5.1 嵌套循環

示例:九九乘法表

for i in range(1, 10):
for j in range(1, i + 1):
print(f"{j}×{i}={i*j}", end='\t')
print()
# 輸出
1×1=1
1×2=2 2×2=4
1×3=3 2×3=6 3×3=9
1×4=4 2×4=8 3×4=12 4×4=16
1×5=5 2×5=10 3×5=15 4×5=20 5×5=25
1×6=6 2×6=12 3×6=18 4×6=24 5×6=30 6×6=36
1×7=7 2×7=14 3×7=21 4×7=28 5×7=35 6×7=42 7×7=49
1×8=8 2×8=16 3×8=24 4×8=32 5×8=40 6×8=48 7×8=56 8×8=64
1×9=9 2×9=18 3×9=27 4×9=36 5×9=45 6×9=54 7×9=63 8×9=72 9×9=81

解析:

for i in range(1, 10):
# range(1, 10) 會生成從 1 到 9(不包含 10)的整數序列,也就是 1, 2, 3, ..., 9
# i 在每次循環時會依次取上面序列中的值,因此當最外層循環運行時,i 會依次是 1, 2, 3, ..., 9
# 這個循環相當于“控制行數”或者“控制哪一行的乘法”,因為最常見的乘法表是按行從 1×1 開始,到 9×9 結束。

for j in range(1, i + 1):
# 這是一個“內層循環”,用來控制每一行中要打印哪些乘法式子
# 注意這里的 range(1, i + 1) 表示從 1 到 i(包含 i)。因為 range(a, b) 默認是不包含 b 的,寫 i + 1 才能把 i 本身包含進來
# 舉例:當外層的 i = 3 時,range(1, i + 1) 就是 range(1, 4),也就是 1, 2, 3。因此會打印 1×3=3、2×3=6、3×3=9 這幾個乘法式子
# 每一行打印完對應的乘法公式后,才會回到外層循環,讓 i 進入下一個值,打印下一行

print(f"{j}×{i}={i*j}", end='\t')
# print() 函數默認在輸出結束后會換行(即 end='\n')。但是這里把 end 改成了 '\t'(制表符),所以不會立即換行,而是用一個 Tab 空格來分隔各個乘法結果,讓它們在同一行顯示并對齊
# f"{j}×{i}={i*j}" 中的 f 表示“格式化字符串(f-string)”。把 j、i、i*j 的值自動填進字符串里,這樣在打印時就能顯示具體的乘法過程和結果

print()
# 此處打印空白是為了打印完一行的乘法式子后進行換行

5.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=' ')
# 輸出
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97

六、列表推導式(拓展)

6.1 列表推導式

列表推導式就是用一行簡短的代碼來創建或生成一個新列表的方式。它看起來很像在一對方括號 [] 里面寫了一個小小的 for 循環,并且可以在循環里加入一些條件判斷(可選)。

語法結構:

[表達式 for 變量 in 可迭代對象 if 條件]

如果你想生成一個包含 1 到 5 的列表,常見的做法是:

numbers = []
for i in range(1, 6):
numbers.append(i)

print(numbers)
# 輸出
[1, 2, 3, 4, 5]

而有了列表推導式,就可以把上面的循環簡化成:

numbers = [i for i in range(1, 6)]
print(numbers)
# 輸出
[1, 2, 3, 4, 5]

這兩段代碼的效果是一模一樣的!只是第二段更短、更直觀。

示例:生成平方數列表

squares = [x ** 2 for x in range(1, 11)]
print(squares)
# 輸出
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

七、常見問題與注意事項

Python 使用縮進來表示循環體。一旦你寫完 forwhile 后面的冒號 :, 所有屬于循環體的代碼都必須在同一縮進層級。

while 循環中,若忘記更新條件變量,容易進入無限循環。如果這不符合預期,需要及時糾正。

它們能讓邏輯更靈活,但也可能讓程序流程難以追蹤。使用前最好想清楚代碼邏輯。

想要一次遍歷多個序列或者做復雜判斷時,可以結合 if-elserange()zip() 等函數、結構或運算符一起使用。

八、總結

常用于遍歷已有序列或固定次數的循環(借助 range())。

條件為真時持續執行,適用于需要不確定次數的重復操作。

是實現大多數邏輯的基礎,靈活運用能編寫出豐富多樣的功能。

有了循環,你的 Python 程序就不僅能做條件判斷,還能自動重復執行特定操作,從而輕松解決各種批量任務、累加計算或數據處理。多多練習和應用,你就能進一步領悟到編程的“自動化”魅力了!

上一篇:

利用云雀大模型 API 打造自己的專屬AI機器人

下一篇:

如何用Ragas評估RAG系統:從理論到實踐的深度指南
#你可能也喜歡這些API文章!

我們有何不同?

API服務商零注冊

多API并行試用

數據驅動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內容創意新穎性、情感共鳴力、商業轉化潛力

25個渠道
一鍵對比試用API 限時免費

#AI深度推理大模型API

對比大模型API的邏輯推理準確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費