5.1 for 循环
for 循环用于遍历序列(列表、元组、字符串等)或其他可迭代对象。
基本语法
遍历列表
1 2 3 4 5 6 7 8 9
| fruits = ["apple", "banana", "orange"]
for fruit in fruits: print(f"I like {fruit}")
|
遍历字符串
1 2 3 4 5 6 7 8 9 10 11 12
| word = "Python"
for char in word: print(char)
|
5.2 range() 函数
range() 生成数字序列,常用于控制循环次数。
基本用法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| for i in range(5): print(i)
for i in range(2, 6): print(i)
for i in range(0, 10, 2): print(i)
for i in range(5, 0, -1): print(i)
|
实际应用
1 2 3 4 5 6 7 8 9 10 11
| total = 0 for i in range(1, 101): total += i print(f"1 到 100 的和: {total}")
for i in range(1, 10): for j in range(1, i + 1): print(f"{j}×{i}={i*j}", end="\t") print()
|
5.3 while 循环
while 循环在条件为真时重复执行代码块。
基本语法
示例
1 2 3 4 5 6 7 8 9 10 11
| count = 1 while count <= 5: print(f"Count: {count}") count += 1
password = "" while password != "123456": password = input("请输入密码: ") print("登录成功")
|
无限循环
1 2 3 4 5 6
| while True: command = input("输入命令 (quit 退出): ") if command == "quit": break print(f"执行命令: {command}")
|
5.4 break 语句
break 用于立即终止循环。
1 2 3 4 5 6 7 8 9 10
| for i in range(1, 10): if i % 2 == 0: print(f"找到偶数: {i}") break print(f"检查: {i}")
|
实际应用:搜索
1 2 3 4 5 6 7 8 9
| numbers = [3, 7, 2, 9, 5, 8] target = 9
for i, num in enumerate(numbers): if num == target: print(f"找到 {target},索引为 {i}") break else: print(f"未找到 {target}")
|
5.5 continue 语句
continue 用于跳过当前迭代,继续下一次循环。
1 2 3 4 5 6 7
| for i in range(1, 11): if i % 2 == 0: continue print(i)
|
实际应用:过滤数据
1 2 3 4 5 6 7
| scores = [85, 42, 90, 38, 76, 55, 92]
for score in scores: if score < 60: print(f"不及格: {score}") continue print(f"及格: {score}")
|
5.6 pass 语句
pass 是空语句,用于保持语法结构完整。
1 2 3 4 5 6 7 8 9 10 11 12 13
| def future_function(): pass
for i in range(10): pass
if condition: pass else: print("条件不满足")
|
5.7 循环 else 子句
Python 的循环可以带 else 子句,在循环正常结束时执行(非 break 中断)。
1 2 3 4 5 6 7 8 9 10 11 12 13
| for i in range(5): print(i) else: print("循环正常结束")
count = 0 while count < 3: print(count) count += 1 else: print("循环正常结束")
|
实际应用
1 2 3 4 5 6 7 8 9 10
| numbers = [1, 3, 5, 7] target = 4
for num in numbers: if num == target: print(f"找到 {target}") break else: print(f"未找到 {target}")
|
5.8 嵌套循环
循环可以嵌套使用。
1 2 3 4 5 6 7 8 9 10
| for i in range(3): for j in range(3): print(f"({i}, {j})", end=" ") print()
|
注意事项
1 2 3 4 5 6 7 8 9 10 11
| for i in range(3): for j in range(3): if j == 1: break print(f"i={i}, j={j}")
|
5.9 枚举与解包
enumerate()
同时获取索引和值:
1 2 3 4 5 6 7 8
| fruits = ["apple", "banana", "orange"]
for index, fruit in enumerate(fruits): print(f"{index}: {fruit}")
for index, fruit in enumerate(fruits, start=1): print(f"{index}: {fruit}")
|
zip()
并行遍历多个序列:
1 2 3 4 5
| names = ["Alice", "Bob", "Charlie"] ages = [25, 30, 35]
for name, age in zip(names, ages): print(f"{name} is {age} years old")
|
5.10 本章小结
for 用于遍历可迭代对象,while 用于条件循环
range(start, stop, step) 生成数字序列
break 终止循环,continue 跳过当前迭代
pass 是空语句,用于占位
- 循环可带
else 子句,正常结束时执行
enumerate() 获取索引和值,zip() 并行遍历
练习题
- 使用 for 循环计算 1 到 100 所有偶数的和
- 使用 while 循环实现斐波那契数列前 20 项
- 打印以下图案:
- 以下代码输出什么?
1 2 3 4 5
| for i in range(3): for j in range(3): if i == j: break print(f"{i},{j}")
|