翼度科技»论坛 编程开发 python 查看内容

Python关于print的操作(倒计时、转圈显示、进度条)

6

主题

6

帖子

18

积分

新手上路

Rank: 1

积分
18
前言

在python中,print是重要的输出语句,让我们更方便的知道程序的运行状况,但是这样还不够,我们也可以用print来给周围的小伙伴秀一下

步入正题


    1. \r
    复制代码
    表示将光标的位置回退到本行的开头位置
    1. \b
    复制代码
    表示将光标的位置回退一位

1、横条加载
  1. num = 20
  2. for i in range(num):
  3.     print("#")
复制代码
打印结果:
  1. ####。。。。(此处省略剩下16个 #)
复制代码
结果发现这样很丑,达不到我们的预期,所以,在
  1. print
复制代码
里面,我们有一个
  1. flush
复制代码
,是及时刷新的意思,默认为
  1. False
复制代码
,只有所有内容都有来然后一次性打印出来,为
  1. True
复制代码
时是及时更新
  1. print
复制代码
的信息
  1. import time
  2. num = 20
  3. for i in range(num):
  4.     print("#", end="", flush=True)
  5.     time.sleep(0.1)
复制代码
这次我们加上
  1. time
复制代码
中延迟的
  1. sleep
复制代码
来综合试一下
打印结果:


2、倒计时显示
  1. import time
  2. for i in range(5, 0, -1):
  3.     print("\r", "倒计时{}秒!".format(i), end="", flush=True)
  4.     time.sleep(1)
复制代码
打印结果:

  1. print
复制代码
中,
  1. \r
复制代码
就可以让打印之后有重新回到本行开头的位置继续打印,相当于重新刷了一遍,但是我们不难发现,倒计时前面有个小空缺,那是因为
  1. "\r"
复制代码
占了一个小位置,所以我们把代码重新改造一下。
  1. import time
  2. for i in range(5, 0, -1):
  3.     print("\r倒计时{}秒!".format(i), end="", flush=True)
  4.     time.sleep(1)
  5. print("\r倒计时结束!")
复制代码
打印结果:


3、转圈等待显示

话不多说直接上代码
  1. import time
  2. sum = 10         # 设置倒计时时间
  3. timeflush = 0.25  # 设置屏幕刷新的间隔时间
  4. for i in range(0, int(sum/timeflush)):
  5.     list = ["\", "|", "/", "—"]
  6.     index = i % 4
  7.     print("\r程序正在运行 {}".format(list[index]), end="")
  8.     time.sleep(timeflush)
复制代码
运行结果:


4、进度条显示
  1. import time
  2. days = 365
  3. for i in range(days):
  4.     print("\r进度条百分比:{}%".format(round((i + 1) * 100 /days)), end="", flush=True)
  5.     time.sleep(0.02)
复制代码
打印结果:


进度条改进版
  1. import time
  2. num = 50         #设置倒计时时间
  3. timeflush = 0.5   #设置屏幕刷新的间隔时间
  4. for i in range(0, int(num/timeflush)+1):
  5.     print("\r正在加载:" + "|" + "*" * i + " "*(int(num/timeflush)+1-i)+"|" + str(i)+"%", end="")
  6.     time.sleep(timeflush)
  7. print("\r加载完成!")
复制代码
打印结果:


进度条升级版

我们通过加入一些进度条模块,可以实现进度条炫酷的效果

tqdm模块

我们在
  1. cmd
复制代码
中下载
  1. tqdm
复制代码
模块
  1. pip install tqdm
复制代码
我们在
  1. pycharm
复制代码
中加入
  1. tqdm
复制代码
模块

勾选
  1. Install to user's site packages directory
复制代码
点击
  1. Install Package
复制代码
然后代码如下:
  1. from tqdm import tqdm
  2. for i in tqdm(range(10000)):
  3.     pass
复制代码
运行结果:

这里根据每个电脑的不同而范围不同,电脑性能好的同学可以适当的值调大,这样会显示最佳的体验效果

progressbar模块

现在
  1. cmd
复制代码
中下载
  1. progressbar
复制代码
模块,命令是
  1. pip install progressbar
复制代码
即可安装成功
然后在
  1. pycharm
复制代码
中安装
  1. progressbar
复制代码
模块

勾选
  1. Install to user's site packages directory
复制代码
点击
  1. Install Package
复制代码
代码如下:
  1. from progressbar import *
  2. import time
  3. pro = ProgressBar()  # 将progressbar中的ProgressBar实例化
  4. for i in pro(range(1000)):
  5.     time.sleep(0.01)
复制代码
运行结果:

我的电脑不知道怎么回事,正常的画面加载不出来,但是不影响程序,程序是对的,我在
  1. time.sleep(0.01)
复制代码
下面加了个
  1. print()
复制代码
就是这个样子,要不然加载条不出来。同学可以自己查查资料哟

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

来源:https://www.jb51.net/article/283781.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具