Python级数求和程序输出恒为0.00,求问题排查与修正
问题排查与代码修正
原代码的核心错误
- 循环范围错误:
range(numbed + 1)会遍历从0到n的所有整数,但级数的第一项是x^1,不需要a=0的项 - 符号逻辑颠倒:题目中级数的符号规律是:第a项(a从1到n)为
+x^a/a(当a为奇数),-x^a/a(当a为偶数),原代码的符号判断正好相反 - 分母错误:每一项的分母应该是当前的项数
a,而非固定的numbed(n)
修正后的代码
x = float(input("Enter value of x: ")) n = int(input("Enter value of n: ")) summed = 0.0 for a in range(1, n + 1): # 奇数项为正,偶数项为负 sign = 1 if a % 2 == 1 else -1 # 计算当前项并累加 term = sign * (x ** a) / a summed += term print("Sum of series:", summed)
代码说明
- 将
x的输入改为float,支持小数输入(输入整数也能正常处理) - 循环从
1开始到n,完全匹配级数的项数范围 - 用
sign变量明确控制每一项的符号,贴合题目要求的规律 - 每一项的分母使用当前项数
a,修正了原代码固定分母的错误 - 初始值
summed设为0.0,确保浮点运算精度
内容的提问来源于stack exchange,提问作者Aditya shukla
相关产品推荐
相关产品推荐

