Python中利用进度条求圆周率
Posted 海藻&未眠
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python中利用进度条求圆周率相关的知识,希望对你有一定的参考价值。
从祖冲之到现在,圆周率的发展越来越丰富,求法也是越来越快其中:
1.求圆周率的方法:
(1)蒙特卡罗法
这是基于“随机数”的算法,通过计算落在单位圆内的点与正方形内的比值来求圆周率PI。
如果一共投入N个点,其中有M个落入圆中,则要点均匀,假定圆周率的半径为R,则:
(2)欧拉恒等式公式为:
基础的泰勒级数:
(2)求python进度表
代码:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 18-5-21 下午3:44
# @Author : LK
# @File : 进度条.py
# @Software: PyCharm
import sys
import time
def process_bar(precent, width=50):
use_num = int(precent*width)
space_num = int(width-use_num)
precent = precent*100
# 第一个和最后一个一样梯形显示, 中间两个正确,但是在python2中报错
#
# print(\'[%s%s]%d%%\'%(use_num*\'#\', space_num*\' \',precent))
# print(\'[%s%s]%d%%\'%(use_num*\'#\', space_num*\' \',precent), end=\'\\r\')
print(\'[%s%s]%d%%\'%(use_num*\'#\', space_num*\' \',precent),file=sys.stdout,flush=True, end=\'\\r\')
# print(\'[%s%s]%d%%\'%(use_num*\'#\', space_num*\' \',precent),file=sys.stdout,flush=True)
if __name__ == \'__main__\':
for i in range(21):
precent = i/20
process_bar(precent)
time.sleep(0.2)
print(\'\\n\')
显示如下:
t
(3)利用进度条显示求圆周率
代码如下:
import math
import time
scale=10
print("执行开始")
t=time.process_time()
for i in range(scale+1):
a,b=\'**\'*i,\'..\'*(scale-i)
c=(i/scale)*100
π=4*(4*math.atan(1/5)-math.atan(1/239))
print("%{:3}[{}->{}]".format(a,b,c))
time.sleep(0.1)
print(π)
print("{:.2f}s".format(t))
print("执行结束")
运行结果如下:
现在,到此结束.................
以上是关于Python中利用进度条求圆周率的主要内容,如果未能解决你的问题,请参考以下文章