• 带有进度条的圆周率计算


    我们在使用Python运行程序时,遇到较大数据时,运行时间总是会比较长,而又没有什么提示,我们就无法得知此时的程序是否在运行,运行到哪一步了,所以今天,我们尝试将进度条加到计算的程序中,下面以计算圆周率为例。

    一、准备

    这次的进度条我们将用到tqdm,这是一个比较强大的库函数

    首先我们应该安装tqdm

    第一步,按下Win+R打开命令输入框,并输入cmd,点击确定

     

    第二步,找到IDLE文件(即平时打代码的程序),右击,点击属性,得到如下界面,再点击打开文件所在的位置

     

    打开Scripts文件,可以看到pip文件

     

     

    将pip文件直接拖至刚才输入cmd打开的界面

    在pip.exe后方输入install tqdm(注意以空格为间隔),然后点击回车,这样我们就安装好了tqdm库函数

    这时我们可以测试一下tqdm函数绘制出的进度条效果如何,代码如下

    1 from tqdm import*
    2 import time
    3 for i in tqdm(range(10)):
    4    time.sleep(0.1)

    效果如图

    二、编写计算圆周率的函数

    计算圆周率的方法有很多种,下面我以打靶法为例,代码如下

     1 import time
     2 from random import random
     3 from math import sqrt
     4 
     5 DARTS=1000000
     6 hits=0.0
     7 time.clock()
     8 for i in range(1,DARTS):
     9     x,y=random(),random()
    10     dist=sqrt(x**2+y**2)
    11     if dist<=1.0:
    12         hits=hits+1
    13 pi=4*(hits/DARTS)
    14 print("Pi值是{}.".format(pi))
    15 print("运行时间是:{:.5f}s".format(time.clock()))

    三、汇总

    将计算圆周率的代码与进度条的代码结合在一起,代码如下

     1 from tqdm import tqdm
     2 import time
     3 from random import random
     4 from math import sqrt
     5 
     6 DARTS=1000000
     7 hits=0.0
     8 time.clock()
     9 for i in range(1,DARTS):
    10     x,y=random(),random()
    11     dist=sqrt(x**2+y**2)
    12     if dist<=1.0:
    13         hits=hits+1
    14 for i in tqdm(range(1,DARTS//100000+1)):
    15     time.sleep(0.05)
    16 pi=4*(hits/DARTS)
    17 print("Pi值是{}.".format(pi))
    18 print("运行时间是:{:.5f}s".format(time.clock()))

    最终效果如下

    这样我们就完成了带有进度条的圆周率计算方法

  • 相关阅读:
    文件操作
    集合和深浅copy #
    货郎担问题TSP(dp解法)
    luoguP3413 SAC#1
    luoguP3413 SAC#1
    poj1681 Painter's Problem(gauss+dfs判定)
    日常(身怀绝技的大家)
    poj1830 开关问题(gauss)
    poj1830 开关问题(gauss)
    poj1222 EXTENDED LIGHTS OUT(gauss)
  • 原文地址:https://www.cnblogs.com/ReganWhite/p/10569603.html
Copyright © 2020-2023  润新知