循环结构
Python 循环结构:原理精讲 + 应用场景 + 实战技巧
一、什么是循环结构?
在编程中,循环结构(loop)指的是让某段代码重复执行的流程控制方式。这就好比让计算机做一件“重复性劳动”,比如:
- 每秒打印一次“hello”共3600次
- 遍历1\~100的所有整数求和
- 反复让用户输入密码,直到正确为止
如果没有循环结构,我们得把相同的代码复制成百上千遍,这是极其低效且容易出错的。
二、Python 支持哪两种循环?
循环类型 | 适用场景 | 是否推荐 |
---|---|---|
for-in |
已知循环次数 | ✅ 强烈推荐 |
while |
未知循环次数(条件驱动) | ✅ 强烈推荐 |
三、for-in 循环:重复固定次数的最优解
✅ 原理:
Python 的 for-in
循环配合 range()
使用,用于遍历一个序列、范围或可迭代对象。
✅ 语法结构:
for 变量 in 可迭代对象:
循环体(缩进)
✅ 典型场景:
🌟 每秒打印一次 hello,重复 3600 次:
import time
for _ in range(3600): # _ 表示“我不关心这个变量”
print('hello, world')
time.sleep(1)
🌟 从 1 加到 100:
total = 0
for i in range(1, 101): # 包含1~100
total += i
print(total)
🌟 输出所有奇数:
for i in range(1, 101, 2): # 步长为2,得到奇数
print(i)
🌟 sum 函数替代循环:
print(sum(range(2, 101, 2))) # 从 2 开始,每次+2,到100
四、while 循环:当条件为真时就一直做
✅ 原理:
while
循环只要条件满足(为 True
),就会无限重复执行。
✅ 语法结构:
while 条件表达式:
循环体(缩进)
✅ 使用场景:
🌟 从 1 加到 100:
total = 0
i = 1
while i <= 100:
total += i
i += 1
print(total)
🌟 用户输入密码直到正确:
password = ''
while password != '123456':
password = input("请输入密码:")
print("密码正确,欢迎登录!")
五、break 与 continue:循环控制利器
✅ break
:强制退出整个循环
while True:
cmd = input(">>> ")
if cmd == 'exit':
break # 用户输入 exit,立即终止循环
✅ continue
:跳过当前这一次,直接进入下一次
for i in range(1, 11):
if i % 2 == 0:
continue # 忽略偶数
print(i) # 只会打印奇数
六、嵌套循环:循环里套循环
✅ 用途示例:九九乘法表
for i in range(1, 10):
for j in range(1, i + 1):
print(f'{i}×{j}={i*j}', end='\t')
print() # 换行
输出样式:
1×1=1
2×1=2 2×2=4
3×1=3 3×2=6 3×3=9
...
七、实战应用案例
✅ 例子 1:判断素数
num = int(input("请输入一个正整数:"))
is_prime = True
for i in range(2, int(num ** 0.5) + 1):
if num % i == 0:
is_prime = False
break
print(f'{num}是素数' if is_prime else f'{num}不是素数')
✅ 例子 2:最大公约数(欧几里得算法)
x = int(input('x = '))
y = int(input('y = '))
while y:
x, y = y, x % y
print(f'最大公约数: {x}')
✅ 例子 3:猜数字游戏
import random
answer = random.randint(1, 100)
count = 0
while True:
guess = int(input("猜一个 1~100 的数字:"))
count += 1
if guess < answer:
print("再大一点")
elif guess > answer:
print("再小一点")
else:
print(f"猜对了!共猜了 {count} 次")
break
八、最佳实践总结
场景 | 推荐方式 | 原因 |
---|---|---|
循环次数已知 | for i in range(...) |
简洁清晰,性能好 |
循环次数未知,基于条件停止 | while 条件: |
灵活控制循环 |
循环中提前终止 | 使用 break |
遇到终止条件直接退出循环 |
跳过当前某轮循环 | 使用 continue |
忽略本轮剩余内容,进入下一轮 |
不使用循环变量 | 用 _ 代替变量名 |
Python 规范写法 |
减少嵌套层级 | 拆分逻辑 | 保持代码清晰、可读性强 |
九、延伸阅读与思考练习
- 你能用
while
实现九九乘法表吗? - 使用
break
实现一个支持“无限输入,直到输入0为止”的累加器。 - 对比
for
和while
,你更喜欢哪个?在什么情况下换用另一个?
十、课程小结
掌握内容 | 应用场景 |
---|---|
for 循环 + range |
遍历数字序列、固定次数任务 |
while 循环 |
条件驱动型任务,如游戏输入、密码验证等 |
break / continue |
提前结束或跳过循环,提高代码控制能力 |
嵌套循环 | 表格输出、双层遍历、图形生成等复杂结构 |
循环配合分支 | 构建更灵活的逻辑流程,如筛选、判断与分类处理 |
如果你需要该内容的 PDF 打印版、PPT 教学版或配套习题讲解,请告诉我,我可以帮你生成。下一节我们将深入探索 Python 中的 函数与模块结构,带你走进更高级的代码组织与复用世界。