Python终端在长时间重复期间打印空行
我写了一个基于巴塞尔问题计算pi的程序,但这个程序包含一个非常大的while repeat 见: 当我运行此命令时,会输出这样一个空行,不带“>>>”: ==================================重新启动:C:/Python/pi.py========================== 原因是什么 编辑:很抱歉不同的变量,我用自己的语言编写了这个程序,然后为您翻译了变量。我忘了一些。 第二次编辑:我尝试了Luc的建议,还将print math.sqrt(sumn*6)的位置改为outer,这样我就可以看到它是否正在处理。Python终端在长时间重复期间打印空行,python,python-2.7,Python,Python 2.7,我写了一个基于巴塞尔问题计算pi的程序,但这个程序包含一个非常大的while repeat 见: 当我运行此命令时,会输出这样一个空行,不带“>>>”: ==================================重新启动:C:/Python/pi.py========================== 原因是什么 编辑:很抱歉不同的变量,我用自己的语言编写了这个程序,然后为您翻译了变量。我忘了一些。 第二次编辑:我尝试了Luc的建议,还将print math.sqrt(sumn*6)
但在第7个pi之后,它停止工作并停留在3.14159264498您的问题的简短答案是,您的
while
循环太大。因此,当您执行程序时,通过while循环的时间太长
您复制/粘贴的代码中有一些拼写错误,但我假设没有。您正在尝试进行10000次迭代。你真的需要那么多吗
我会从100次迭代开始,最多。如果你需要更高的精度,就增加它
如果只使用for循环,您的算法将更容易理解/调试
你可以试试这个,例如:
import math
max_iteration = 100
sumn=0.
for n in range(1,max_iteration+1):
sumn+=1./(n**2)
print math.sqrt(sumn*6)
当max_iteration=100时,您应该会发现3.13207653181,如果您增加max_iteration,则精度会变得更好。经过10000次迭代,您的代码已达到3.14149716395。您是如何从空闲或命令行运行的?请检查代码中的
outerrepat
、tekrar
和karekok
的定义。此代码只是一系列namererror
s,没有人可以通过在头脑中运行或单步进行调试。是的,我得到了答案,谢谢。所以它在做一些事情,但是过程太长了。
import math
max_iteration = 100
sumn=0.
for n in range(1,max_iteration+1):
sumn+=1./(n**2)
print math.sqrt(sumn*6)