这是我的作业问题。我们被要求找到级数的总和-> 1 + 1/2 + 1/3 + 1/4 ... + 1 / n(这里n = 20)
下面提供了我尝试过的代码。
denominator=1
num=float(1/denominator)
sum=0
while denominator<=20:
print(num)
sum+=num
denominator+=1
print(f'the sum of the above series is {sum}.')
输出结果为20。但这不是必需的结果。
最佳答案
1 / denominator
已经是浮点数,因此不需要float(...)
,并且一次将1 / denominator
分配给num
并不意味着num
会随着denominator
的变化而改变,因此,您应该计算1 / denominator
循环中的每个denominator
,并避免将内置函数sum
(您可能已经用来解决此问题)用作变量名:
denominator = 1
s = 0
while denominator <= 20:
num = 1 / denominator
print(num)
s += num
denominator += 1
print(f'the sum of the above series is {s}.')
输出:
1.0
0.5
0.3333333333333333
0.25
0.2
0.16666666666666666
0.14285714285714285
0.125
0.1111111111111111
0.1
0.09090909090909091
0.08333333333333333
0.07692307692307693
0.07142857142857142
0.06666666666666667
0.0625
0.058823529411764705
0.05555555555555555
0.05263157894736842
0.05
the sum of the above series is 3.597739657143682.
将内置的
sum
与生成器表达式一起使用:s = sum(1 / d for d in range(1, 21))
关于python - 使用while循环求出1 + 1/2 + 1/3…+ 1/n的和,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57844002/