You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python while循环执行逻辑与i+=增量赋值差异咨询

while循环执行逻辑与不同增量写法的核心差异

首先明确while循环的固定执行顺序,没有任何特殊逻辑:

  • 第一步:先执行循环前的初始化代码
  • 第二步:判断while后紧跟的条件,条件为假直接跳过整个循环块,一步都不执行
  • 第三步:条件为真的话,从上到下逐行执行完循环体内的所有代码
  • 第四步:回到第二步重新判断条件,重复上述流程

你贴的示例代码里有个笔误:i=+1不是增量写法,等价于i = 1,每次循环都会把i强制重置为1,运行后会无限打印1,你实际测试的应该是i += 1的正确写法。


不同增量写法的实际执行流程

1. 循环内写i += 2时仅输出1、3的原因

逐行跑逻辑就能看得很清楚:

  1. 初始化阶段执行i = 1
  2. 第一次判断i < 5:1 < 5 结果为真,进入循环
    • 执行print(i),输出1
    • 执行i += 2,i的值更新为1+2=3
  3. 第二次判断i <5:3 <5 结果为真,进入循环
    • 执行print(i),输出3
    • 执行i +=2,i的值更新为3+2=5
  4. 第三次判断i <5:5 <5 结果为假,直接退出循环,不会再执行循环内的打印逻辑

核心注意点:条件判断永远发生在进入循环体之前,变量修改后不会立刻触发打印,必须等下一轮判断通过才会执行打印逻辑。

2. 其他增量写法的效果差异

  • 写i += 0时:每次循环i的值都不会发生变化,永远是初始值1,1<5的条件永远为真,程序会无限循环打印1,无法自行退出。
  • 写i +=1(即你示例笔误对应的正确写法)时:
    1. 初始i=1,判断通过后打印1,i更新为2
    2. 判断2<5通过,打印2,i更新为3
    3. 判断3<5通过,打印3,i更新为4
    4. 判断4<5通过,打印4,i更新为5
    5. 判断5<5不通过,退出循环,最终依次输出1、2、3、4

常见踩坑提醒

不要把复合赋值运算符+=写反成=+,后者不是“加1赋值”,是直接把变量赋值为正1,和i = 1效果完全一致,很容易写出无意义的死循环。

内容的提问来源于stack exchange,提问作者realmilanez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 00:48:24