需求分析
文本进度条
- 采用字符串方式打印可以动态变化的文本进度条
- 进度条需要再一行中逐渐变化
- 采用
sleep()
模拟一个持续的进度
代码阅读
#TextProBarV1.py
import time
scale = 10 #我要输出十一行,因为要有0%到100%
print("------执行开始------")
for i in range(scale+1):
a = '*' * i
b = '·' * (scale -i)
c = (i/scale) * 100
print("{:^3.of}%[{}->{}]".format(c, a, b))
time.sleep(0.1) #等待一秒
print("------执行结束------")
运行效果如下
代码解读
我们的目的是要刷新,那么刷新的关键就是/r
(回退:打印之后光标要回到之前的位置。因为刷新的本质就是后打印的字符覆盖之打印的字符。
除此之外,我们的print()需要被控制,因为print()默认是自动换行的。
import time
for i in range(101):
print("\r{:3}%".format(i), end="") #\r回到行首,这个东西是不可以在idle里面运行的,因为id