在Python中,如何停止计算特定小数点处的内容?

2024-04-18 09:59:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我对编码相当陌生,我设法创建了一个if语句来计算pi。 我正在寻找一种方法来停止我在某个小数位所做的无限循环计算,这样我就可以打印出尽可能长的π 以下是我目前的代码:

input("Pi is equal to: ")
print()
x = float(-1)
asdf = ("anything")
pi = float(0)
while (asdf) != "qwertyuiop" :
    x = float(float(x) + float(2))
    pi = float(float(pi) + float(float(4) / float(x)))
    x = float(float(x) + float(2))
    pi = float(float(pi) - float(float(4) / float(x)))
    return(asdf)

(asdf是我做无限循环的方法)


Tags: 方法代码编码inputifispiequal
1条回答
网友
1楼 · 发布于 2024-04-18 09:59:10

一种方法是在进入循环之前获得所需的迭代次数:

n_iterations = input("Insert number of loop iterations: ")
x = float(-1)
pi = float(0)
# Underscore (_) is a Python convention for naming throwaway variables,
# meaning that _ is not used in the loop, it's just there to iterate
for _ in range(int(n_iterations)):
    x = float(float(x) + float(2))
    pi = float(float(pi) + float(float(4) / float(x)))
    x = float(float(x) + float(2))
    pi = float(float(pi) - float(float(4) / float(x)))
print(pi)

另一种解决方案是通过按CTRL+C来打破无限while循环,如下所示:

x = float(-1)
pi = float(0)
try:
    while True:
        x = float(float(x) + float(2))
        pi = float(float(pi) + float(float(4) / float(x)))
        x = float(float(x) + float(2))
        pi = float(float(pi) - float(float(4) / float(x)))
# KeyboardInterrupt is caused by pressing CTRL+C
except KeyboardInterrupt:
    print("Final pi value: " + str(pi))

顺便说一下,正如注释中提到的,while True:被认为是在Python中创建无限循环的标准方法。你知道吗

相关问题 更多 >