Skip to main content

循环

循环让程序能够重复执行某段代码。Python 主要有两种循环:for 循环和 while 循环。

for 循环

遍历列表、字符串等可迭代对象:

members = ["Alice", "Bob", "Carol"]
for member in members:
print(f"欢迎 {member}")

遍历字符串的每个字符:

for char in "Python":
print(char)

配合 range()

生成数字序列进行循环:

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

指定起始和步长:

for i in range(1, 11, 2): # 从 1 到 10,步长 2
print(i)
# 1 3 5 7 9

遍历切片

members = ["Alice", "Bob", "Carol", "David", "Eric"]
for member in members[:3]:
print(member)

while 循环

只要条件为 True 就会一直执行:

count = 0
while count < 5:
print(f"第 {count + 1} 次")
count += 1

注意: while 循环必须确保条件最终会变为 False,否则会无限循环。

控制循环流程

break

立即退出循环:

for member in members:
if member == "Carol":
print("找到了 Carol")
break

continue

跳过当前轮次,继续下一轮:

for i in range(1, 11):
if i % 2 == 0:
continue
print(i) # 只打印奇数

避免缩进错误

循环体里的代码必须正确缩进:

# 正确
for member in members:
print(member)
print("结束") # 不在循环里

# 错误 — 忘了缩进
for member in members:
print(member) # IndentationError

循环的实际应用

批量处理数据:

scores = [78, 85, 92, 67, 88]
total = 0
for score in scores:
total += score
average = total / len(scores)
print(f"平均分: {average:.1f}")

查找满足条件的数据:

members = [
{"name": "Alice", "score": 90},
{"name": "Bob", "score": 75},
{"name": "Carol", "score": 88},
]

for member in members:
if member["score"] >= 80:
print(f"{member['name']} 优秀")