python-3.x - 在循环中使用 math.factorial 写入 sum
问题描述
我正在尝试编写一个函数来计算这样的总和:
∑_(k=0)^n 1/k!
所以 n = 2 的预期结果: 1/factorial(0) + 1/factorial(1) + 1/factorial(2) = 1 + 1 + 0.5 + 2.5
我已经尝试过了,但它不起作用。我不知道为什么。我曾想过尝试将商保存为一个列表,然后对其求和,但这似乎不是一种有效的方法。
import math
def test_fun(n:int)->int:
Sn = 0
k:int
for k in range(0,n,1):
Sn += 1/math.factorial(k)
return(Sn)
test_fun(2)
Out[75]: 1.0
任何帮助都会很棒。提前致谢。
编辑:根据 Carcigenicate 的建议,未缩进返回(Sn)。还认为 range(0,2) 返回 0,1 而不是 0,1,2。现在一切都好!
def test_fun(x:int)->int:
n = x+1
Sn = 0
for k in range(0,n,1):
Sn = Sn + 1/math.factorial(k)
return(Sn)
test_fun(2)