6-Python3流程控制(二):while循环与for循环

目录

一、while循环:条件满足就一直跑

二、for循环:遍历序列神器

三、range()函数:数字序列生成器

四、break和continue:循环的遥控器

break:立即结束整个循环

continue:跳过本次,继续下一次

五、循环选择建议

六、实用技巧

1. for循环配合enumerate获取索引

2. while循环的else子句

七、常见错误提醒

八、总结


循环就是让代码重复执行。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循环也有这个特性。

详细解释:

  1. while循环的else子句:当while循环的条件变为False而自然结束时,会执行else块中的代码;但如果在循环中使用break提前退出,则不会执行else块。
  2. 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:循环流程控制器,一个退出一个跳过
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值