1 问题
如何用python代码求圆周率。
2 方法
让所用公式等式右边分子都为1,分母为递增数列,从第一项开始,奇数项符号为正,偶数项符号为负。等式右边的分母越大,越小,圆周率π计算的值越精确
代码清单 1
from math import fabs
from time import perf_counter
def Bar(i):
N = pow(10,level)
a = int((i/N)*50)
b = 50 - a
Y , N = '*' * a , '.' * b
print("\r计算中:{:3.0f}% [{}->{}] {:.2f}s"
.format(2*a,Y,N,perf_counter()),end='')
level = eval(input('计算Pi精确到小数点后几位数:'))
print('\n{:=^70}'.format('计算开始'))
a,b,pi,tmp = 1,1,0,1
i = 0
'''
a 分子 | b 分母 | pi 圆周率
tmp 存储a/b的值 | i 执行进度
'''
perf_counter()
while (fabs(tmp) >= pow(10,-level)):
pi += tmp
b += 2
a = -a
tmp = a/b
i += 2
Bar(i)
print('\n{:=^70}'.format('计算完成'))
print('\nPi的计算值为:{}'.format(round(pi*4,level))
3 结语
针对如何利用python求圆周率的问题,我们利用函数通过实验,证明该方法有效,但有些地方任然有误差和错误,在未来应继续学习和改善,