1. 程式人生 > >用Python進行有進度條的π計算

用Python進行有進度條的π計算

clas mil print 結合 spa sca rom math -i

1.tqdm是一個強大的終端進度條工具,我利用pip獲取tqdm函數庫。

2編寫代碼

2.1進行π的計算

from random import random

from math import sqrt

from time import clock

DARTS=10000

hits=0.0

clock()

for i in range(1,DARTS+1):

x,y=random(),random()

dist=sqrt(x**2+y**2)

if dist <=1.0:

hits=hits+1

pi=4*(hits/DARTS)

print("pi的值{}.".format(pi))

print("運行時間:{:.5f}s".format(clock()))for i in tqdm(range(10)):

技術分享圖片

技術分享圖片

然後改變DARTS的賦值,發現π的位數越來越多

技術分享圖片

技術分享圖片

2.2文本進度條

選擇帶刷新的文本進度條,利用tqdm庫實現

代碼:

import time
from tqdm import tqdm
scale=50
print("執行開始".center(scale//2,‘-‘))
t=time.clock()
for i in tqdm(range(scale+1)):
  a=‘*‘*i
  b=‘.‘*(scale-i)

  c=(i/scale)*100
  t-=time.clock()
  print("\t{:^3.0f}%[{}->{}]{:.2f}s".format(c,a,b,-t),end=‘‘)
  time.sleep(0.05)
print("\n"+"執行結

技術分享圖片

技術分享圖片

2.3最後將兩者結合

from math import sqrt
from tqdm import tqdm
from random import random
import time
DARTS=10000
hits=0.0
t=time.clock()
for i in tqdm(range(1,DARTS+1)):
  x,y=random(),random()

  dist=sqrt(x**2+y**2)
  if dist<=1.0:
    hits+=1
  a=‘*‘*i
  b=‘.‘*(DARTS+1-i)
  c=(i/DARTS+1)*100
  t-=time.clock()
  time.sleep(0.00001)
pi=4*(hits/DARTS)
print("Pi值是{}.".format(pi))
print("\t{:^3.0f}%[{}->{}]{:.2f}s".format(c,a,b,-t),end=‘‘)
print("運行時間是:{:.5f}s".format(time.clock()))

技術分享圖片

用Python進行有進度條的π計算