首页 > 解决方案 > python的无限循环

问题描述

我正在尝试解决一个循环到xand系列的第 15 个对象y。在该系列中,````y values are subtracted from, andx values are added topi```(嵌套在 for 循环中)如图所示:

from decimal import Decimal

i = 2
x = 0
y = 0
pi = 0

#write formular for sequence
for i in range(17):

   for i in range(2, 17, 2):
      x =  (4 / (i * (i+1) * (i+2)))

   for i in range (4, 17, 2):
      y =  (4 / ((i+2) * (i+3) * (i+4)))

   pi = 3 + x - y
   i += 4
   print(pi)

我期望每次迭代都有不同的 pi 值。但是对于所有 15 次,但我一直得到相同的答案。 3.000232198142415这与我的预期值不接近。我究竟做错了什么?

标签: pythonloops

解决方案


错误在于 x = (4 / (i * (i+1) * (i+2)))

将其更改为 x += (4 / (i * (i+1) * (i+2))) Or -=, *= , /= 你的算法是什么...对 y 重复相同的操作

问题是因为您使用 x = 这会覆盖 x 值,并且您继续获得 x 和 y 的相同值,因此结果相同......


推荐阅读