在 Python 中,循环结构主要有两种:for 循环和 while 循环,以下是它们的详细用法和示例:

for 循环
用于遍历可迭代对象(如列表、元组、字符串、字典等)。
基本语法
for 变量 in 可迭代对象:
循环体
示例
# 遍历列表
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
print(fruit)
# 遍历字符串
for char in "hello":
print(char)
# 遍历字典(默认遍历键)
student = {"name": "Alice", "age": 20}
for key in student:
print(key)
# 遍历字典的值
for value in student.values():
print(value)
# 遍历字典的键值对
for key, value in student.items():
print(f"{key}: {value}")
带 range() 的循环
# 从 0 到 4(不包含 5)
for i in range(5):
print(i)
# 从 2 到 5(不包含 6)
for i in range(2, 6):
print(i)
# 从 1 到 10,步长为 2
for i in range(1, 11, 2):
print(i)
while 循环
当条件为 True 时重复执行代码块。
基本语法
while 条件:
循环体
示例
# 计数器示例
count = 0
while count < 5:
print(count)
count += 1 # 必须更新条件,否则会无限循环
# 用户输入示例
while True:
user_input = input("输入 'exit' 退出: ")
if user_input == "exit":
break
print(f"你输入了: {user_input}")
循环控制
break:立即退出循环。continue:跳过当前迭代,继续下一次循环。pass:空操作(占位符)。
示例
# 使用 break
for i in range(10):
if i == 5:
break
print(i) # 输出 0, 1, 2, 3, 4
# 使用 continue
for i in range(5):
if i == 2:
continue
print(i) # 输出 0, 1, 3, 4
# 使用 pass(无实际作用,仅用于语法占位)
for i in range(3):
pass # 什么也不做
循环中的 else 子句
循环正常完成后(未被 break 终止)执行 else 块。
示例
# for 循环的 else
for i in range(3):
print(i)
else:
print("循环正常结束") # 输出 0, 1, 2 和 "循环正常结束"
# while 循环的 else
count = 0
while count < 3:
print(count)
count += 1
else:
print("循环正常结束") # 输出 0, 1, 2 和 "循环正常结束"
# 被 break 终止的循环不执行 else
for i in range(3):
if i == 1:
break
print(i)
else:
print("不会执行") # 不会输出
嵌套循环
循环内再嵌套循环(如打印乘法表)。

示例
# 打印 9x9 乘法表
for i in range(1, 10):
for j in range(1, i + 1):
print(f"{j}x{i}={i*j}", end="\t")
print() # 换行
推导式(Comprehension)
用简洁语法生成列表、字典或集合。
示例
# 列表推导式
squares = [x**2 for x in range(5)] # [0, 1, 4, 9, 16]
# 字典推导式
square_dict = {x: x**2 for x in range(3)} # {0: 0, 1: 1, 2: 4}
# 集合推导式
unique_chars = {char for char in "hello"} # {'h', 'e', 'l', 'o'}
| 循环类型 | 适用场景 | 关键字 |
|---|---|---|
for 循环 |
遍历已知序列(列表、字符串等) | for, in |
while 循环 |
条件未知,需动态判断时 | while |
| 控制语句 | 跳过或终止循环 | break, continue |
| 推导式 | 简化生成列表/字典/集合 | [], |
根据需求选择合适的循环方式,注意避免无限循环!

