这个代码怎么填写才能正确

img

img


看不懂什么叫输入精度e就能求出近似值,然后我这里输入了咋没有输出呀怎么改呀

你的循环条件有问题,其次,你的累加计算公式有问题,把4提出来,剩余的部分就是1-1/3+1/5-1/7。。。 分子是1,分母为奇数,再次,e表示的是精度,意识就是最后一项的大小不超过e,因此e越小,精度越高,修改代码如下:

e = float(input('输入自然数e:'))

# 请根据 e 计算 pi 的近似值
pi=0
i=1
f=1
t=1

while True:
    v = f*t/(2*i-1)  #当前项的值= -11 乘以  1/(2*i-1)
    pi += v 
    f = -f  #更换符号 由1变-1 或-11
    if abs(v) < e: #如果当前项的绝对值小于e则跳出循环 计算结束
        break
    i = i + 1

print("{:.5f}".format(4*pi))

运行结果:

img

while f/t>e:
不是小于e,否则死循环

到最后一项的绝对值小于e为止,
那就是如果绝对值大于等于e执行while循环语句,
while abs(f/t ) >= e:

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^