第七章 文本进度条的实现
Posted chy8
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第七章 文本进度条的实现相关的知识,希望对你有一定的参考价值。
文本进度条
大家都见过程加载的时候的文本进度条
进度条的原理是什么呢?
1、采用字符串方式打印可以动态变化的文本进度条
2、进度条需要能在一行中逐渐变化
问题分析:
如何获取一个文本进度条的变化时间呢?
1、采用sleep()模拟一个持续的进度
2、似乎不那么难
简单的开始:
1 #TextProBarV1.py 2 import time 3 scale = 10 4 print("------执行开始------") 5 for i in range(scale+1): 6 a = ‘*‘ * i 7 b = ‘.‘ * (scale - i) 8 c = (i/scale)*100 9 print("{:^3.0f}%[{}->{}]".format(c,a,b)) 10 time.sleep(0.1) 11 print("------执行结束------")
执行结果如下图所示:
单行动态刷新:
刷新的关键是
1、刷新的本质是:用后打印的字符覆盖之前打印的字符
2、不能换行:print()需要被控制
3、需要回退:打印后光标退回到之前的位置
1 #TextProBarV2.py 2 import time 3 for i in range(101): 4 print(" {:3}%".format(i), end="") 5 time.sleep(0.1)
如果我们在python自带的idle里面运行将会有如下效果
原因是IDLE屏蔽了 功能
在cmd命令行中运行即可
可以看到如上代码只有百分比数字显示,并不是我们常见的完整的进度条,我们继续完善代码:
1 #TextProBarV3.py 2 import time 3 scale = 50 4 print("执行开始".center(scale//2, "-")) 5 start = time.perf_counter() 6 for i in range(scale+1): 7 a = ‘*‘ * i 8 b = ‘.‘ * (scale - i) 9 c = (i/scale)*100 10 dur = time.perf_counter() - start 11 print(" {:^3.0f}%[{}->{}]{:.2f}s".format(c,a,b,dur),end=‘‘) 12 time.sleep(0.1) 13 print(" "+"执行结束".center(scale//2,‘-‘))
执行后的运行结果如下图所示:
以上是关于第七章 文本进度条的实现的主要内容,如果未能解决你的问题,请参考以下文章