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

Python for循环迭代变量与常量相乘得到意外结果是什么原因

代码运行结果不符原因说明

首先拆解你的代码实际执行流程:

  • 你定义的初始值x=1是可更新的全局变量,range(3)返回的迭代序列为0、1、2
  • 第一次迭代i=0时,执行x *= i等价于x = x * i = 1 * 0 = 0,此时x的值被永久覆盖为0
  • 第二次迭代i=1时,执行x *= i等价于x = 0 * 1 = 0,x仍为0
  • 第三次迭代i=2时,执行x *= i等价于x = 0 * 2 = 0,x保持为0

因此最终输出三次0,和你的预期不符。

你预期的输出0、1、2对应的逻辑是每次计算都使用x的初始值1和当前i相乘,不更新x的取值,如果要实现该效果,可以将代码调整为:

x = 1
for i in range(3):
    print(x * i)

如果你的需求确实需要累积更新x的取值,建议将range(3)改为range(1,4)避免第一次乘0导致后续所有计算结果都为0。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 10:45:03