需求分析:
采用字符串方式打印可以动态变化的文本进度条
进度条需要能在一行中逐渐变化
如何获得文本进度条的变化时间?
采用sleep()模拟一个持续的进度
先进行简单的调试:
import time
scale=10
print("开始对爱进行充能!!!")
scale=10
for i in range(scale+1):
a='*'*i
b='.'*(scale-i)
c=(i/scale)*100
print("{:^3.0f}%[{}->{}]\r".format(c,a,b))
time.sleep(0.1)
print("元气满满,又是爱狗妹的一天!!!")
单行动态刷新,刷新的关键是\r
刷新的本质是:用之后打印的字符覆盖之前的字符
不能换行!!!:print()需要被控制
要能回退:打印后光标退回道之前的位置\r
.format(),end=""简单理解就是如果我们希望输出的字符串后面增加什么信息,就在end参数中增加,如果不希望增加换行,那么就将end字符设置为空字符串。下面进行完整代码展示:
import time
scale=10
print("开始对爱进行充能!!!")
scale=10
for i in range(scale+1):
a='♥'*i
b='.'*(scale-i)
c=(i/scale)*100
print("\r[{}{}]{:^3.0f}%".format(a,b,c),end="")
time.sleep(0.5)
print("\n元气满满,又是爱狗妹的一天♥")