创建一个函数,该函数根据指定的迭代次数计算 pi 的近似值



提示:pi 可以通过 4*(1-1/3+1/5-1/7+1/9- ...( 计算。

我有通过使用 while 循环来解决这个问题的想法,但我感到困惑的是,在 while 循环中,我每次使用 if 条件时如何保存我的变量。

这是我的代码。

def piA(num):
i = 1
pi = 4
while i <= num:
s = 0
float(s)
if i % 2 == 1:
s = s + (1/(2*i-1))
print(s)
elif i % 2 == 0:
s = s - (1/(2*i-1))
print(s)
i += 1
print(s)
return pi*s
print(piA(2))

结果显示: 1.0 1.0 -0.3333333333333333 -0.3333333333333333 -

1.33333333333333333

你不必保存前面的变量,只需使用内置方法sum()

def pi(num):
return 4*sum((1 if i % 2 else -1)*(1 / (2*i - 1)) for i in range(1, num+1))
print(pi(10000))

指纹:

3.1414926535900345

最新更新