代码中i初始赋值为1,执行i=i+1后为何最终结果为2?
i = 1 i = i + 1 print(i)
执行结果为2的原因
代码按从上到下的顺序逐行执行,每一步的变量状态变化如下:
- 第一行
i = 1:执行基础赋值操作,把整数值1绑定到变量i,执行完这行后i的存储值为1。 - 第二行
i = i + 1:赋值语句的执行规则是先计算等号右侧的所有表达式,拿到最终结果后再赋值给等号左侧的变量。这一步读取到的i是上一步留存的值1,计算1+1得到结果2,再把2重新绑定到变量i上,原来存储的1会被直接覆盖,这行结束后i的值就更新为2。 - 第三行
print(i):读取变量i当前的存储值输出到控制台,此时取到的i已经是第二行赋值后的2,因此最终打印结果就是2。
注意:代码里的
=是赋值运算符,不是数学意义上的相等判断符号,它只代表「将右侧计算结果存入左侧变量对应存储空间」的操作,不存在“i=i+1不符合数学逻辑”的矛盾。
内容的提问来源于stack exchange,提问作者yx_Tan 996
相关产品推荐
相关产品推荐

