python while循环

一、while循环核心定义

while循环是Python中基于条件判断的循环结构:只要条件表达式为True,就会重复执行循环体代码,直到条件变为False时停止。
核心语法:

while 条件表达式:
    # 循环体(需要缩进,通常4个空格)
    要重复执行的代码块
    # 可选:改变条件的代码(避免死循环)

二、基础用法(从简单到复杂)

1. 最基础的计数循环

实现“重复执行N次”的功能,类似for循环的基础用法:

# 示例:循环打印1-5
count = 1  # 初始化计数器
while count <= 5:
    print(f"当前计数:{count}")
    count += 1  # 计数器自增(关键:否则会无限循环)

# 输出:
# 当前计数:1
# 当前计数:2
# 当前计数:3
# 当前计数:4
# 当前计数:5

2. 条件触发的循环

根据动态条件执行循环,比如“用户输入正确才停止”:

# 示例:让用户输入正确密码才退出
password = "123456"
user_input = ""

while user_input != password:
    user_input = input("请输入密码:")
    if user_input != password:
        print("密码错误,请重新输入!")

print("密码正确,登录成功!")

# 运行效果:
# 请输入密码:123
# 密码错误,请重新输入!
# 请输入密码:123456
# 密码正确,登录成功!

3. 无限循环(可控退出)

while True创建无限循环,通过break语句主动退出,适合“不确定循环次数”的场景:

# 示例:简易计算器,输入q退出
while True:
    # 获取用户输入
    num1 = input("请输入第一个数字(输入q退出):")
    if num1.lower() == "q":
        print("计算器退出!")
        break  # 退出循环
    
    num2 = input("请输入第二个数字:")
    # 简单加法(忽略异常处理,仅演示)
    print(f"结果:{float(num1) + float(num2)}")

# 运行效果:
# 请输入第一个数字(输入q退出):5
# 请输入第二个数字:3
# 结果:8.0
# 请输入第一个数字(输入q退出):q
# 计算器退出!

三、while循环的关键控制语句

语句 作用
break 立即终止整个while循环,跳出循环体
continue 跳过当前循环的剩余代码,直接回到条件判断处,开始下一次循环
else 循环正常结束(未被break中断)时,执行else块中的代码(可选)

示例:结合break/continue/else的完整用法

# 示例:遍历1-10,打印偶数,遇到7终止,正常结束则提示
num = 0
while num < 10:
    num += 1
    if num == 7:
        print("遇到7,终止循环!")
        break  # 终止循环
    if num % 2 != 0:
        continue  # 跳过奇数,直接进入下一次循环
    print(f"偶数:{num}")
else:
    # 只有循环未被break中断时,才会执行这里
    print("循环正常结束,未遇到7!")

# 输出:
# 偶数:2
# 偶数:4
# 偶数:6
# 遇到7,终止循环!

四、常见坑与避坑技巧

  1. 死循环:忘记修改条件变量(如计数器不自增),导致条件永远为True。
    ✅ 避坑:循环体内必须有改变条件的代码(如count += 1),或用break可控退出。

  2. 缩进错误:循环体未缩进,或缩进不一致(混合空格和Tab)。
    ✅ 避坑:统一用4个空格缩进,IDE会自动提示缩进问题。

  3. 条件表达式错误:比如把==写成=(赋值),导致条件永远为True。
    ✅ 避坑:检查条件表达式,赋值操作不要出现在while条件中。

总结

  1. while循环的核心是条件驱动,适合“不确定循环次数”的场景(如用户输入验证、动态条件判断);
  2. 控制循环的关键:用count += 1修改条件,或用break/continue灵活控制流程;
  3. 避免死循环是使用while循环的首要注意事项,循环体内必须有“让条件最终变为False”的逻辑。
posted @ 2026-01-20 15:41  Python也不过如此  阅读(2)  评论(0)    收藏  举报