码迷,mamicode.com
首页 > 编程语言 > 详细

自主学习python文本进度条

时间:2019-03-19 01:31:19      阅读:362      评论:0      收藏:0      [点我收藏+]

标签:com   运行时   控制台   固定   网络卡顿   制作   print   单行   卡顿   

 

经过自己一段时间的学习,已经略有收获了!在整个过程的进行中,在我逐渐通过看书,看案例,做题积累了一些编程python的经验以后,我发现我渐渐爱上了python,爱上了编程!

接下来,当然是又一些有趣的实验案例:文本进度条的制作和π的计算!

相信大家都玩过游戏吧,面对加载的游戏数据,我们可能会遇到这样一种情况:网络卡顿的时候,进度条缓缓移动却迟迟不能加载完全,实在是消磨人们的耐心(狗头)

在我们的印象中,进度条应该是一个条状方块,随着时间的推移慢慢向前移动,直至数据加载完成!

那么,要怎么用python来实现呢??

我们有一些不同的形式呢~

 

一·、最简单的一种

基本思想:

这是一种简单的,按照任务执行的百分比将整个任务划分为100个单位,每执行N%输出一次进度条;每行输出包括进度百分比,代表已完成的部分(**)和未完成的部分(..)的两种字符,以及一个跟随完成度前进的小箭头:

类似于这样:%10{******->..................................................}

代码:

接下来,就来展示一下实现上面这个指令的python代码要怎么写吧~

import time
scale=10
print("------执行开始------")
for i in range(scale+1):
  a,b=‘**‘*i,‘..‘*(scale-i)
  c=(i/scale)*100
  print("%{:^3.0f}[{}->{}]".format(c,a,b))
  time.sleep(0.1)
print("------执行结束------")

显然我们从这几行代码中可以看出,代码调用了python中的time库,这是标准时间库;

由于程序的执行速度远超人类的视觉停留时间,直接进行字符输出几乎是瞬间完成,所以我们采用了time库中的time.sleep(t)函数来将当前的程序暂时挂起 t 秒,以便人眼能够捕捉到程序进行的细节;

我们可以再IDLE环境下看到它的运行效果:

技术图片

(将代码打入IDLE环境中)

技术图片

 

 (一行行根据0.1秒的间隔输出出来)

是不是很酷呢?

二、单行动态刷新

基本思想:

我们一般见到的进度条都是在一行上刷新操作的,所以,我们运用动态刷新的思想,将每一次进度输出都固定在同一行,并不断地用生成的字符串覆盖之前的输出,形成进度条不断刷新的动态效果!

代码:

import time
for i in range(101):
print("\r{:3}%".format(i),end="")
time.sleep(0.03)

看上去十分简洁,它最后呈现的效果是这样的:

技术图片

由于IDLE环境下本身屏蔽了单行刷新的功能,想要有刷新效果就得移步到控制台使用命令行执行程序

方法:

1.首先是按住键盘的“windows+R”调用出cmd窗口

技术图片

 

 技术图片

紧接着,我们就可以将文件的地址输入来调用了:

技术图片

这是我存放的地址

技术图片

选择python打开

技术图片

(最后效果啦~)

是不是很酷??

三、带刷新的文本进度条

基本思想:

将前两小节的程序合并,再添加开始和结束提示语,可以很好地实现带刷新的文本进度条,我们调用time.clock()函数来对运行时间进行监控;

代码:

import time

scale=50
print("执行开始".center(scale//2,‘-‘))
t=time.clock()
for i in 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"+"执行结束".center(scale//2,‘-‘))

最终效果:

技术图片

 

 大概的形式就是这样啦!

自主学习python文本进度条

标签:com   运行时   控制台   固定   网络卡顿   制作   print   单行   卡顿   

原文地址:https://www.cnblogs.com/iconangle/p/10556176.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!