源码:
1 from math import fabs #导入数学模块 2 3 from time import perf_counter #导入时间模块 4 5 from numba import jit 6 7 @jit 8 9 10 def Bar(i): #动态文本条11 12 N = pow(10,level)13 14 a = int((i/N)*50)15 16 b = 50 - a17 18 Y , N = ‘*‘ * a , ‘.‘ * b19 20 print("r计算中:{:3.0f}% [{}->{}] {:.2f}s"21 22 .format(2*a,Y,N,perf_counter()),end=‘‘)23 24 while True:25 26 27 level = eval(input(‘计算Pi精确到小数点后几位数(最后一位不精准):‘))28 29 print(‘n{:=^70}‘.format(‘计算开始‘))30 31 a,b,pi,tmp = 1,1,0,132 33 i = 034 35 ‘‘‘36 37 a 分子 | b 分母 | pi 圆周率38 39 tmp 存储a/b的值 | i 执行进度40 41 ‘‘‘42 43 perf_counter() #开始计时44 45 while (fabs(tmp) >= pow(10,-level)): #计算Pi46 47 pi += tmp48 49 b += 250 51 a = -a52 53 tmp = a/b54 55 i += 256 57 Bar(i) #调用函数,实时显示计算进度58 59 60 61 print(‘n{:=^70}‘.format(‘计算完成‘))62 63 print(‘nPi的计算值为:{}‘.format(round(pi*4,level))) #输出计算结果64 print()65 print()66 print()67
因为太慢所有用了jit加速详情见:python可以提高程序执行速度N倍你知道吗? - _天枢 - 博客园