tsu.xxw 发表于 2022-1-9 23:52

python实现简单进度条-time库

先立好flag,人生苦短,我要学python!
最近开始系统学习python,刚碰到time库实现简单进度条的模仿,觉得很有趣,就决定发出来共同学习下。
效果如下

进度条的实现可以简单理解为print函数在打印进度条时,不换行,而是不断刷新这一行打印的数据,进而实现进度条增长的视觉效果。
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完整代码如下: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的兴趣。

涛之雨 发表于 2022-1-10 07:50

https://github.com/WoLpH/python-progressbar

https://tqdm.github.io/

这两个库不错

613PJ 发表于 2022-1-16 22:26

yangaming 发表于 2022-1-11 16:30
恩,再加个输入三次错误让明天再来.

搞定啦

n = 1
user = '123'
pwd = '456'
while n < 4:

    n1 = input("请输入用户名: ")
    n2 = input("请输入密码:   ")

    if user == n1 and pwd == n2:
      print("登录成功")
      break

    else:
      print("用户名或者密码错误,你还有",3-n,"次机会")
      n = n + 1
      if n == 4:
            print("登录次数超过3次,登录失败")

AsuraSong 发表于 2022-1-10 00:38

谢谢楼主分享,超实用,对我这种没什么耐性的人来说就相当于书签

MingYue592 发表于 2022-1-10 00:45

谢谢分享学习了

wu_yang007 发表于 2022-1-10 01:00

希望以后能看的懂

龍謹 发表于 2022-1-10 07:58

向大家学习,偶到现在还是PY小白。

tyosei 发表于 2022-1-10 08:33

感谢分享

shanhu5235 发表于 2022-1-10 08:54

涛之雨 发表于 2022-1-10 07:50
https://github.com/WoLpH/python-progressbar

https://tqdm.github.io/


谢谢版主分享

samz123 发表于 2022-1-10 08:56

老哥从MOOC学的?我在那也学了这个案例~

zm55555 发表于 2022-1-10 09:02

蛮好的,小巧
页: [1] 2 3 4
查看完整版本: python实现简单进度条-time库