学习实例 文本进度条
一、简单开始
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))
print('-----执行结束-----')
二、单行动态刷新
刷新的本质:用后打印的字符覆盖之前的字符
import time
for i in range(101):
print("\r{:3}%".format(i),end="")
time.sleep(0.05)
注意:如果在python自带的IDLE环境中,输出中没有单行刷新,那是因为IDLE本身屏蔽了单行刷新功能
三、带刷新的文本进度条
import time
scale = 50
print('执行开始'.center(50,"-"))
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(50,"-"))
- '\r’是回车,使光标到行首,每次打印完要使光标回退到行首。 '\n’是换行,使光标下移一格
- 字符串格式化’{:^3.0f}’.format() : ^ 代表居中。3表示长度,format填充不足3自动填充空格,可以指定填充物。0f表示小数点精确度到个位