
2025年最新LangChain Agent教程:從入門到精通
# 在循環體中,針對每次迭代的 "變量" 做相應的操作
示例:
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
)逐個訪問元素的數據集合,比如列表、字符串、字典等。例如,遍歷 ["蘋果", "香蕉"]
時,循環會依次取出“蘋果”和“香蕉”。它代表一種“可依次取出內容”的特性。
如果我們想循環執行固定次數,一種常見方法是結合 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
循環適用于我們不知道具體循環次數,但想在某個條件滿足前一直循環的場景。語法如下:
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
代碼解釋:
sum_value = 0
,n = 1
;n <= 100
時,就把 n
累加到 sum_value
,然后把 n
加 1;n
超過 100,條件不成立,循環結束,輸出結果。如果你不小心遺漏了更新循環條件的語句(比如上例中的 n += 1
),就可能導致 while
永遠都不變為 False,從而陷入無限循環。在實際寫代碼時要留意確保循環能正確終止,否則你的程序可能會卡住或占用大量資源。
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
就會讓循環立刻停止。
continue
會跳過當前循環迭代,直接進入下一次循環。一般用來忽略某些特殊情況:
for i in range(1, 6):
if i == 3:
continue # 跳過 i=3 這次循環
print(i)
# 輸出
1
2
4
5
Python 允許在 for
或 while
循環后面寫 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("沒有找到目標數字")
# 輸出
沒有找到目標數字
target
并用 break
跳出循環,就不會執行 else
塊。else
塊就會執行,打印“沒有找到目標數字”。示例:九九乘法表
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()
# 此處打印空白是為了打印完一行的乘法式子后進行換行
示例:輸出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
列表推導式就是用一行簡短的代碼來創建或生成一個新列表的方式。它看起來很像在一對方括號 []
里面寫了一個小小的 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 使用縮進來表示循環體。一旦你寫完 for
或 while
后面的冒號 :
, 所有屬于循環體的代碼都必須在同一縮進層級。
在 while
循環中,若忘記更新條件變量,容易進入無限循環。如果這不符合預期,需要及時糾正。
break
和 continue
它們能讓邏輯更靈活,但也可能讓程序流程難以追蹤。使用前最好想清楚代碼邏輯。
想要一次遍歷多個序列或者做復雜判斷時,可以結合 if-else
、range()
、zip()
等函數、結構或運算符一起使用。
for
循環常用于遍歷已有序列或固定次數的循環(借助 range()
)。
while
循環在條件為真時持續執行,適用于需要不確定次數的重復操作。
break和continue
:是實現大多數邏輯的基礎,靈活運用能編寫出豐富多樣的功能。
有了循環,你的 Python 程序就不僅能做條件判斷,還能自動重復執行特定操作,從而輕松解決各種批量任務、累加計算或數據處理。多多練習和應用,你就能進一步領悟到編程的“自動化”魅力了!