更新0:看到一个公众号关于文本进度条的,放一下链接:https://mp.weixin.qq.com/s/vwZCJKuH3OBvH25i1LB5Ow
https://mp.weixin.qq.com/s/7148mMHGa8qs8X1sZS2FrQ
下面的依旧是嵩天老师的课程讲解:
版本1.0代码:
# TextProBarV1.py
import time
scale= 10
print("------执行开始------")
for iin range(scale+1):
a= '*' * i
b= '.' * (scale-i)
c= (i/scale)*100
print("{:^3.0f}%[{}-->{}]".format(c, a, b))
time.sleep(0.1)
print("------执行结束------")
执行结果:
单行动态刷新
刷新的本质是:用之后打印的字符覆盖之前的字符
不能换行:print()需要被控制
要能回退:打印后光标退回到之前的位置 \r
版本3代码:
# TextProBarV3.py
import time
scale= 50
print("执行开始".center(scale//2, "-"))
start= time.perf_counter()
for iin range(scale+1):
a= '*' * i
b= '.' * (scale-i)
c= (i/scale)*100
dur= time.perf_counter() - start
print("\r{:^3.0f}%[{}-->{}]{:.2f}s".format(c, a, b, dur), end="")
time.sleep(0.1)
print("执行结束".center(scale//2, "-"))
执行效果如下:
举一反三
计算问题扩展:计时方法适合各类需要统计时间的计算问题,例如:比较不同算法时间、统计程序运行时间
进度条应用:在任何运行时间需要较长的程序中增加进度条;在任何希望提高用户体验的应用中增加进度条;进度条是人机交互的纽带之一