Python学习之文本进度条
文本进度条的简单开始
#TextProBarV1.py
import time
scale = 10
print("------执行开始------")
for i in range(scale+1):
a = '*' * i
b = '#' * (scale - i)
c = (i/scale) * 100
print("{:^3.0f} % [{}->{}]".format(c, a, b))
time.sleep(0.1)
print("------执行结束------")
文本进度条单行动态刷新
\r这个参数表示在打印输出字符串之前,它能够使光标退回到当前行的行首
# TextProBarV2.py
import time
for i in range(101):
print("\r{:3}%".format(i), end="")
time.sleep(0.1)
注意事项:因为IDLE本身是一个编写程序的开发环境,而为了保证其中参数的运行效果,所以把\r这个功能给屏蔽掉了,不是程序出现了错误
文本进度条的实例完整效果
#TextProBarV3.py
import time
scale = 50
print("执行开始".center(scale//2, "-"))
start = time.perf_counter()
for i in 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("\n"+"执行结束".center(scale//2,'-'))
举一反三
计算问题的扩展
- 文本进度条程序使用了perf_counter0计时
- 计时方法适合各类需要统计时间的计算问题
- 例如:比较不同算法时间、统计部分程序运行时间
进度条的扩展
- 在任何运行时间需要较长的程序中增加进度条
- 在任何希望提高用户体验的应用中增加进度条
- 进度条是人机交互的纽带之一