先立好flag,人生苦短,我要学python!
最近开始系统学习python,刚碰到time库实现简单进度条的模仿,觉得很有趣,就决定发出来共同学习下。
效果如下
进度条的实现可以简单理解为print函数在打印进度条时,不换行,而是不断刷新这一行打印的数据,进而实现进度条增长的视觉效果。
[Asm] 纯文本查看 复制代码 print("已下载:\r{:3.0f}%[{}-->{}]用时{}s".format(i,a,b,c),end="")
这里让print函数不断在同一行刷新就是在print函数立加一个“\r”,作用就是让打印光标始终停留在该行的首位。
代码主要是使用了time库,time.perf_counter()是获取当前cpu基于某指数的时间,主要是为了测量两次调用这行代码之间的时间
结果中时间不为10s,是因为加上了两次调用这个函数之间,cpu执行其余代码的时间
time.sleep(0.1)就是让程序每次执行到这里时停留0.1s完整代码如下:[Asm] 纯文本查看 复制代码 import time
scale=50
print("开始下载".center(scale//2,"-"))
star=time.perf_counter()
for i in range(101):
a = '*' * i
b = '.' * (100- i)
c=time.perf_counter()-star
print("已下载:\r{:3.0f}%[{}-->{}]用时{}s".format(i,a,b,c),end="")
time.sleep(0.1)
t=time.perf_counter()-star
print("\n"+"下载完成,总用时:{}".format(t).center(scale//2,"-"))
大佬可以随意指出不足之处,也希望和我一样的小白能激起python的兴趣。
|