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

使用for...in range()实现平方和计算的Python代码修复求助

修复平方求和的Python代码问题

嘿,我看你在写平方求和的代码时遇到了问题,咱们来一步步搞定它!

原代码的核心错误

你的代码里,循环内部的两行赋值完全把total的累加逻辑搞砸了:

total = ctr**2
total = (ctr + 1)**2

这两行不是把平方值加到total里,而是直接覆盖了total的当前值。每次循环都会丢掉之前的累加结果,最后total只会保留最后一次循环里的(ctr + 1)**2——比如当N=2时,最后得到的是3²=9,而不是正确的0+1+4=5。

修复后的代码

把覆盖赋值改成累加操作,同时删掉那行多余的(ctr + 1)**2赋值,就能得到正确结果:

import sys
N = int(sys.argv[1])
total = 0
for ctr in range(0, N+1):
    total += ctr**2  # 把当前数的平方累加到total中,等价于 total = total + ctr**2
print(str(total))

测试验证

当你运行python your_script.py 2时,代码会依次计算:

  • ctr=0:total = 0 + 0² = 0
  • ctr=1:total = 0 + 1² = 1
  • ctr=2:total = 1 + 2² = 5
    最后输出5,完全符合你的预期。

额外小技巧(可选)

如果想让代码更简洁,也可以用Python内置的sum()函数结合生成器表达式,不过既然要求用for...in range(),上面的循环写法就完全够用啦:

import sys
N = int(sys.argv[1])
total = sum(ctr**2 for ctr in range(N+1))
print(total)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:53:49