Python使用for循环计算指定级数和的代码错误修复求助
问题分析与代码修复
现有代码的错误点
- 未初始化返回值:n=0、1、2时,
range(1,n-1)为空序列,循环完全不执行,代码没有定义返回值,直接返回None - range参数逻辑错误:range的结束值是开区间,要遍历1到n的所有整数,应该写
range(1, n+1),原写法的结束值n-1会少算最后两项 - 没有实现累加逻辑:循环内每次直接覆盖result为1000加当前项,没有累加之前的求和结果
- 提前终止循环:return语句写在for循环内部,第一次循环就直接返回,不会遍历后续的项
修复后代码
def series_sum(n): if n < 0: return None result = 1000 for i in range(1, n + 1): result += 1 / (i ** 2) return result
结果验证
- n=0:直接返回初始值1000,符合要求
- n=1:累加1/1²,返回1001,符合要求
- n=2:累加1/1²+1/2²,返回1001.25,符合要求
- n=3:累加1/1²+1/2²+1/3²,返回1001.3611111111111,符合要求
内容的提问来源于stack exchange,提问作者user17067568
相关产品推荐
相关产品推荐

