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

计算交错调和级数S=1-1/2+1/3…±1/n的Python代码输出错误求助

交错调和级数计算代码错误分析及修正

错误原因

  • 未初始化变量:代码中的循环计数变量i、累加和变量S都没有设置初始值,若运行环境存在变量残留,会直接导致计算结果错误。
  • 循环逻辑错误:while i != n的终止条件会漏掉i=n的最后一项计算,你输入n=5时,代码执行到i=5就直接跳出循环,没有计算+1/5的步骤,刚好少加了0.2,所以得到0.583的错误结果。
  • 冗余逻辑:循环内部的if i>n判断完全无用,循环条件已经限制了i不会大于n时才继续执行,这部分代码永远不会触发。

修正方案

修正后代码

n = int(input("Enter a number:"))
# 初始化变量
S = 0
i = 1
# 修改循环条件,覆盖到i=n的情况
while i <= n:
    if i % 2 == 0:
        S -= 1 / i
    else:
        S += 1 / i
    i += 1
# 保留三位小数输出匹配预期格式
print(round(S, 3))

验证效果

输入n=5时,计算逻辑为1 - 1/2 + 1/3 -1/4 +1/5 = 0.783,和预期结果一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 13:36:04