目录
循环就是让代码重复执行。Python提供了两种循环:while和for,各有特长。
一、while循环:条件满足就一直跑
基础语法
count = 0
while count < 5:
print(f"当前计数:{count}")
count += 1
print("循环结束")
代码解释:只要count < 5这个条件为真,就一直执行循环体。每次循环count加1,直到count等于5时条件不再满足,退出循环。
关键点:循环体内一定要有改变条件的语句(如count += 1),否则会陷入死循环!
实际场景:用户输入验证
password = ""
while password != "123456":
password = input("请输入密码:")
if password == "123456":
print("登录成功!")
else:
print("密码错误,请重试")

代码解释:不知道用户需要输入几次才对,用while循环持续询问,直到输入正确密码才跳出。
关键点:while适合"不确定要循环多少次,满足条件就停止"的场景。
二、for循环:遍历序列神器
基础语法
fruits = ["苹果", "香蕉", "橙子"]
for fruit in fruits:
print(f"我喜欢吃{fruit}")

代码解释:依次从列表中取出每个元素赋值给fruit,然后执行循环体。列表有多少元素就循环多少次。
关键点:for循环会自动管理迭代过程,不用担心死循环。
遍历字符串
for char in "Python":
print(char)

代码解释:字符串也是序列,会逐个字符输出。
三、range()函数:数字序列生成器
基础用法
# range(stop) - 从0开始到stop-1
for i in range(5):
print(i) # 输出0,1,2,3,4
代码解释:range(5)生成0到4的整数序列,for循环遍历这个序列。
关键点:range生成的序列不包含结束值,这是Python的惯例。
高级用法
# range(start, stop) - 从start到stop-1
for i in range(2, 6):
print(i) # 输出2,3,4,5
# range(start, stop, step) - 带步长
for i in range(0, 10, 2):
print(i) # 输出0,2,4,6,8
# 倒序输出
for i in range(5, 0, -1):
print(i) # 输出5,4,3,2,1
代码解释:range(start, stop, step)三个参数分别是起始值、结束值(不包含)和步长。步长可以是负数实现倒序。
关键点:range返回的是可迭代对象,不是列表,节省内存。需要查看内容时用list(range(5))转换。
四、break和continue:循环的遥控器
break:立即结束整个循环
# 找到第一个大于10的数就停止
numbers = [3, 5, 8, 12, 15, 20]
for num in numbers:
if num > 10:
print(f"找到:{num}")
break
print(f"检查:{num}")

代码解释:当num=12时条件满足,执行break,立即退出for循环,后面的15和20不再检查。
关键点:break只跳出当前所在的最内层循环。
continue:跳过本次,继续下一次
# 只打印偶数
for i in range(1, 6):
if i % 2 != 0: # 如果是奇数
continue # 跳过本次
print(f"偶数:{i}") # 只有i=2,4时会执行

代码解释:当i为奇数时,continue跳过本次循环剩余的代码,直接开始下一次循环。
关键点:continue和break的区别在于,前者只是跳过本次,后者是彻底退出。
五、循环选择建议
| 场景 | 推荐循环 | 原因 |
| 已知循环次数或遍历序列 | for循环 | 代码简洁,更安全 |
| 不确定次数,满足条件就停 | while循环 | 灵活控制 |
| 复杂循环逻辑 | while循环 | 条件判断更自由 |
| 简单迭代 | for循环 | 易读易维护 |
一句话总结:能for就for,不行再用while。
六、实用技巧
1. for循环配合enumerate获取索引
fruits = ["苹果", "香蕉", "橙子"]
for index, fruit in enumerate(fruits):
print(f"第{index}个水果是{fruit}")

关键点:
enumerate()同时获取索引和元素,比用range(len(list))更优雅。
2. while循环的else子句
count = 0
while count < 3:
print(count)
count += 1
else:
print("循环正常结束(没有遇到break)")
关键点:while的else在循环正常结束时执行(非break退出),for循环也有这个特性。
详细解释:
- while循环的else子句:当while循环的条件变为False而自然结束时,会执行else块中的代码;但如果在循环中使用break提前退出,则不会执行else块。
- for循环的else子句:同样地,当for循环正常遍历完所有元素时,会执行else块;但如果在循环中遇到break,则跳过else块。
七、常见错误提醒
# 错误1:while死循环
while True:
print("停不下来") # 缺少break或改变条件的语句
# 错误2:修改正在遍历的列表
nums = [1, 2, 3]
for n in nums:
nums.remove(n) # 危险!会导致意外行为

八、总结
- while循环:条件驱动,灵活但需谨慎
- for循环:序列驱动,安全又简洁
- range():数字序列生成器,for循环的好搭档
- break/continue:循环流程控制器,一个退出一个跳过
1937

被折叠的 条评论
为什么被折叠?



