python之while循环

while循环在条件为真时重复执行循环体,需手动更新条件变量以防死循环;执行流程为判断条件→执行代码→返回判断,直至条件为假。

while 循环是 Python 中最基础的循环结构,核心就一句话:只要条件为真(True),就重复执行循环体。 它不像 for 那样遍历序列,而是靠程序员自己控制“什么时候停”,灵活但容易写成死循环——关键在“条件判断”和“循环体内必须改变条件变量”。

while 的基本写法和执行逻辑

语法很简单:

while 条件表达式:
    # 条件为 True 时执行的代码块
    # 必须有能影响条件表达式的操作,否则会无限循环

执行过程:先判断条件 → 如果为 True,执行缩进内的语句 → 执行完回到 while 开头重新判断 → 直到条件为 False 时跳出循环,继续执行后续代码。

别忘了更新循环变量,否则就是死循环

这是新手最常踩的坑。比如想打印 1 到 5:

i = 1
while i <= 5:
    print(i)
    # ❌ 忘了写 i += 1 → i 始终是 1,条件永远成立,程序卡住

正确写法:

  • 初始化变量(如 i = 1
  • 设置合理终止条件(如 i )
  • 在循环体中修改该变量(如 i += 1i = i + 1

用 while 处理不确定次数的操作

for 循环适合已知遍历对象(如列表、range),而 while 更适合“不知道要跑几次”的场景:

  • 用户输入直到输入正确内容(比如密码重试)
  • 读取文件直到遇到特定标记或文件结尾
  • 游戏主循环:持续运行,直到玩家选择退出
  • 传感器数据采集:持续读取,直到信号超限或手动中断

例如,让用户输入“yes”才继续:

answer = ""
while answer.lower() != "yes":
    answer = input("请输入 yes 继续:")

break 和 continue 在 while 中很实用

它们不改变 while 本身的条件判断逻辑,但能提前干预执行流程:

  • break:立刻跳出整个 while 循环,执行后续代码
  • continue:跳过本次循环剩余部分,直接回到 while 条件判断

小例子:打印 1~10,跳过 5,遇到 8 就停止:

i = 1
while i <= 10:
    if i == 5:
        i += 1
        continue  # 跳过 print(5)
    if i == 8:
        break     # 不再继续,直接退出
    print(i)
    i += 1

基本上就这些。while 循环不复杂,但容易忽略变量更新和边界条件——写之前先想清楚:初始值是什么?怎么变?什么时候停?