机器都在不停学习
人怎么能停止脚步

Python的print打印进度

我们在使用python编程时,经常需要使用print打印一些东西,比如下面这样

在一些循环过程中,我们经常会使用progress和tqdm这两个包,我之前有写过2篇博客介绍这两个包:Python有趣的库progressbar,给程序加一个进度条吧!、Python有趣的库tqdm,给程序加一个进度条吧!,介绍tqdm。

今天我们使用print,输出程序运行过程中的进度信息。

实际上,print函数,有个默认的参数“end”,而且它默认为“\n”,也就是说,每次打印一次,就换行,我们可以强行规定“end”参数为空,这样就不会换行啦。

from time import sleep
n = 20
for i in range(n):
print('#', end='')
sleep(0.1)

上图中,红色框内,就是输出结果,可以看出,并没有换行。

虽然它没有换行,但它是整块一起出来的,这是因为print没有刷新,我们可以给print强制加上刷新。

from time import sleep
n = 20
for i in range(n):
print('#', end='', flush=True)
sleep(0.1)
不过,对于一些百分比显示,这样操作就不好了,没办法在过程中看到百分比进度。
改进一下程序,让它可以很好地展示百分比。
from time import sleep

n = 500
for i in range(n):
sleep(0.02)
print('\r', '进度条百分比:{:.2f}%'.format(round((i+1)*100/n)), end='', flush=True)
赞(0)
转载请注明出处机器在学习 » Python的print打印进度
分享到: 更多 (0)

评论 抢沙发

Scroll Up