學(xué)會(huì) Python 循環(huán)結(jié)構(gòu)增強(qiáng)編程實(shí)力
在編程中,循環(huán)結(jié)構(gòu)是處理重復(fù)任務(wù)的核心工具。Python提供了多種循環(huán)結(jié)構(gòu),如for循環(huán)和while循環(huán),它們可以幫助我們高效地處理數(shù)據(jù)、自動(dòng)化任務(wù)以及簡(jiǎn)化代碼邏輯。今天,我們將從基礎(chǔ)到高級(jí),逐步探索Python中的循環(huán)結(jié)構(gòu),并通過實(shí)際代碼示例來加深理解。
1. 基礎(chǔ)循環(huán):for循環(huán)
for循環(huán)是Python中最常用的循環(huán)結(jié)構(gòu)之一。它通常用于遍歷序列(如列表、元組、字符串等)中的每個(gè)元素。
# 示例1:遍歷列表
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
print(fruit)
輸出結(jié)果:
apple
banana
cherry
代碼解釋:
- fruits是一個(gè)包含三個(gè)元素的列表。
- for fruit in fruits: 表示遍歷fruits列表中的每個(gè)元素,并將當(dāng)前元素賦值給變量fruit。
- print(fruit) 打印當(dāng)前元素。
2. 使用range()函數(shù)
range()函數(shù)常用于生成一系列數(shù)字,通常與for循環(huán)結(jié)合使用。
# 示例2:使用range()生成數(shù)字序列
for i in range(5):
print(i)
輸出結(jié)果:
0
1
2
3
4
代碼解釋:
- range(5)生成一個(gè)從0到4的數(shù)字序列。
- for i in range(5): 遍歷這個(gè)序列,并將當(dāng)前數(shù)字賦值給變量i。
- print(i) 打印當(dāng)前數(shù)字。
3. while循環(huán)
while循環(huán)在條件為True時(shí)重復(fù)執(zhí)行代碼塊,直到條件變?yōu)镕alse。
# 示例3:使用while循環(huán)
count = 0
while count < 5:
print(count)
count += 1
輸出結(jié)果:
0
1
2
3
4
代碼解釋:
- count初始值為0。
- while count < 5: 表示只要count小于5,就繼續(xù)執(zhí)行循環(huán)。
- print(count) 打印當(dāng)前count的值。
- count += 1 每次循環(huán)后將count加1。
4. 循環(huán)控制:break和continue
break用于立即退出循環(huán),而continue用于跳過當(dāng)前迭代,繼續(xù)下一次循環(huán)。
# 示例4:使用break和continue
for i in range(10):
if i == 3:
continue # 跳過3
if i == 7:
break # 退出循環(huán)
print(i)
輸出結(jié)果:
0
1
2
4
5
6
代碼解釋:
- if i == 3: 當(dāng)i等于3時(shí),continue跳過當(dāng)前迭代,不執(zhí)行print(i)。
- if i == 7: 當(dāng)i等于7時(shí),break退出循環(huán)。
5. 嵌套循環(huán)
嵌套循環(huán)是指在一個(gè)循環(huán)內(nèi)部包含另一個(gè)循環(huán)。這在處理多維數(shù)據(jù)時(shí)非常有用。
# 示例5:嵌套循環(huán)
for i in range(3):
for j in range(2):
print(f"i={i}, j={j}")
輸出結(jié)果:
i=0, j=0
i=0, j=1
i=1, j=0
i=1, j=1
i=2, j=0
i=2, j=1
代碼解釋:
- 外層循環(huán)for i in range(3): 遍歷0到2。
- 內(nèi)層循環(huán)for j in range(2): 遍歷0到1。
- print(f"i={i}, j={j}") 打印當(dāng)前i和j的值。
6. 列表推導(dǎo)式
列表推導(dǎo)式是一種簡(jiǎn)潔的創(chuàng)建列表的方式,通常結(jié)合for循環(huán)使用。
# 示例6:列表推導(dǎo)式
squares = [x**2 for x in range(5)]
print(squares)
輸出結(jié)果:
[0, 1, 4, 9, 16]
代碼解釋:
[x**2 for x in range(5)] 生成一個(gè)列表,其中每個(gè)元素是x的平方,x從0到4。
7. 實(shí)戰(zhàn)案例:模擬購物車結(jié)算
假設(shè)我們有一個(gè)購物車,里面包含多個(gè)商品及其價(jià)格。我們需要計(jì)算總價(jià),并找出價(jià)格最高的商品。
# 實(shí)戰(zhàn)案例:購物車結(jié)算
cart = [
{"name": "apple", "price": 1.2},
{"name": "banana", "price": 0.8},
{"name": "cherry", "price": 2.5},
{"name": "orange", "price": 1.5}
]
total_price = 0
max_price_item = None
for item in cart:
total_price += item["price"]
if max_price_item is None or item["price"] > max_price_item["price"]:
max_price_item = item
print(f"總價(jià): {total_price}")
print(f"最貴的商品: {max_price_item['name']}, 價(jià)格: {max_price_item['price']}")
輸出結(jié)果:
總價(jià): 6.0
最貴的商品: cherry, 價(jià)格: 2.5
代碼解釋:
- cart是一個(gè)包含多個(gè)字典的列表,每個(gè)字典表示一個(gè)商品及其價(jià)格。
- total_price用于累加所有商品的價(jià)格。
- max_price_item用于記錄當(dāng)前價(jià)格最高的商品。
- for item in cart: 遍歷購物車中的每個(gè)商品。
- total_price += item["price"] 累加商品價(jià)格。
- if max_price_item is None or item["price"] > max_price_item["price"]: 更新最貴商品。
- 最后打印總價(jià)和最貴商品的信息。
總結(jié)
本文詳細(xì)介紹了Python中的循環(huán)結(jié)構(gòu),包括for循環(huán)、while循環(huán)、循環(huán)控制語句(break和continue)、嵌套循環(huán)以及列表推導(dǎo)式。通過多個(gè)代碼示例,我們展示了這些概念的實(shí)際應(yīng)用。最后,我們通過一個(gè)購物車結(jié)算的實(shí)戰(zhàn)案例,綜合運(yùn)用了這些知識(shí),展示了循環(huán)結(jié)構(gòu)在實(shí)際編程中的強(qiáng)大功能。