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

嵌套for循环输出结果不符合预期的技术咨询

分析嵌套循环代码的执行过程与结果偏差原因

先把你的代码贴出来方便对照:

m = 0
for x in range (1,3):
    k = 0
    for y in range (-2,0):
        k = k + y
    m = m + k
print (m)

首先得明确几个基础点:

  • range(1,3)会生成1和2两个值,所以外层循环会执行2次
  • range(-2,0)会生成**-2和-1**两个值,所以每次内层循环会完整迭代2次
  • 每次进入外层循环时,k都会被重置为0(这是你可能忽略的关键点)

接下来我们逐次拆解执行流程:

第一次外层循环(x=1)

  1. 初始化k = 0
  2. 内层循环第一次迭代(y=-2):k = 0 + (-2) = -2
  3. 内层循环第二次迭代(y=-1):k = -2 + (-1) = -3
  4. 内层循环结束,执行m = 0 + (-3) = -3

第二次外层循环(x=2)

  1. 再次初始化k = 0(这里很重要!不是接着上次的k值继续算)
  2. 内层循环第一次迭代(y=-2):k = 0 + (-2) = -2
  3. 内层循环第二次迭代(y=-1):k = -2 + (-1) = -3
  4. 内层循环结束,执行m = -3 + (-3) = -6

最后print(m)输出的就是**-6**。

你之前的计算偏差主要出在两个地方:

  • 误以为内层循环每次只执行一次,但实际上range(-2,0)包含两个元素,内层会跑两次
  • 忽略了每次外层循环开始时k都会被重置为0,不是在上一次的k基础上累加

这样一步步走下来,结果就完全符合预期啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:45:34