# 在循環(huán)體中,針對每次迭代的 "變量" 做相應(yīng)的操作

示例

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

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

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

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

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

range(start, end, step) 可以指定起始值——start、結(jié)束值(不含)——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 循環(huán)

3.1 基本語法

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

while 條件表達式:
# 只要 條件表達式 為 True,就持續(xù)執(zhí)行這個代碼塊
# 當 條件表達式 為 False,循環(huán)結(jié)束

示例:計算 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 可能出現(xiàn)的“無限循環(huán)”

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

四、循環(huán)控制語句:break、continue、else

4.1 break 語句

break 用于立即終止當前循環(huán)。比如我們想讓用戶猜數(shù)字,如果猜對就結(jié)束循環(huán):

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

只要用戶猜對,break 就會讓循環(huán)立刻停止。

4.2 continue 語句

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

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

4.3 else 與循環(huán)

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

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

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

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

五、循環(huán)的嵌套與復(fù)雜應(yīng)用

5.1 嵌套循環(huán)

示例:九九乘法表

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)的整數(shù)序列,也就是 1, 2, 3, ..., 9
# i 在每次循環(huán)時會依次取上面序列中的值,因此當最外層循環(huán)運行時,i 會依次是 1, 2, 3, ..., 9
# 這個循環(huán)相當于“控制行數(shù)”或者“控制哪一行的乘法”,因為最常見的乘法表是按行從 1×1 開始,到 9×9 結(jié)束。

for j in range(1, i + 1):
# 這是一個“內(nèi)層循環(huán)”,用來控制每一行中要打印哪些乘法式子
# 注意這里的 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 這幾個乘法式子
# 每一行打印完對應(yīng)的乘法公式后,才會回到外層循環(huán),讓 i 進入下一個值,打印下一行

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

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

5.2 循環(huán)與條件判斷的結(jié)合

示例:輸出1到100之間的質(zhì)數(shù)

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

六、列表推導(dǎo)式(拓展)

6.1 列表推導(dǎo)式

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

語法結(jié)構(gòu):

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

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

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

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

而有了列表推導(dǎo)式,就可以把上面的循環(huán)簡化成:

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

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

示例:生成平方數(shù)列表

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

七、常見問題與注意事項

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

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

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

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

八、總結(jié)

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

條件為真時持續(xù)執(zhí)行,適用于需要不確定次數(shù)的重復(fù)操作。

是實現(xiàn)大多數(shù)邏輯的基礎(chǔ),靈活運用能編寫出豐富多樣的功能。

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

上一篇:

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

下一篇:

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

我們有何不同?

API服務(wù)商零注冊

多API并行試用

數(shù)據(jù)驅(qū)動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力

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

#AI深度推理大模型API

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

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