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

作者:qq_1471587327 时间:2022-08-19 07:26:58 

前言

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

步入正题

  • \r表示将光标的位置回退到本行的开头位置

  • \b表示将光标的位置回退一位

1、横条加载

num = 20
for i in range(num):
   print("#")

打印结果:

#
#
#
#
。。。。(此处省略剩下16个 #)

结果发现这样很丑,达不到我们的预期,所以,在print里面,我们有一个flush,是及时刷新的意思,默认为False,只有所有内容都有来然后一次性打印出来,为True时是及时更新print的信息

import time
num = 20
for i in range(num):
   print("#", end="", flush=True)
   time.sleep(0.1)

这次我们加上time中延迟的sleep来综合试一下

打印结果:

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

2、倒计时显示

import time
for i in range(5, 0, -1):
   print("\r", "倒计时{}秒!".format(i), end="", flush=True)
   time.sleep(1)

打印结果:

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

print中,\r就可以让打印之后有重新回到本行开头的位置继续打印,相当于重新刷了一遍,但是我们不难发现,倒计时前面有个小空缺,那是因为"\r"占了一个小位置,所以我们把代码重新改造一下。

import time
for i in range(5, 0, -1):
   print("\r倒计时{}秒!".format(i), end="", flush=True)
   time.sleep(1)
print("\r倒计时结束!")

打印结果:

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

3、转圈等待显示

话不多说直接上代码

import time
sum = 10         # 设置倒计时时间
timeflush = 0.25  # 设置屏幕刷新的间隔时间
for i in range(0, int(sum/timeflush)):
   list = ["\\", "|", "/", "—"]
   index = i % 4
   print("\r程序正在运行 {}".format(list[index]), end="")
   time.sleep(timeflush)

运行结果:

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

4、进度条显示

import time
days = 365
for i in range(days):
   print("\r进度条百分比:{}%".format(round((i + 1) * 100 /days)), end="", flush=True)
   time.sleep(0.02)

打印结果:

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

进度条改进版

import time
num = 50         #设置倒计时时间
timeflush = 0.5   #设置屏幕刷新的间隔时间
for i in range(0, int(num/timeflush)+1):
   print("\r正在加载:" + "|" + "*" * i + " "*(int(num/timeflush)+1-i)+"|" + str(i)+"%", end="")
   time.sleep(timeflush)
print("\r加载完成!")

打印结果:

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

进度条升级版

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

tqdm模块

我们在cmd中下载tqdm模块

pip install tqdm

我们在pycharm中加入tqdm模块

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

勾选Install to user's site packages directory

点击Install Package

然后代码如下:

from tqdm import tqdm
for i in tqdm(range(10000)):
   pass

运行结果:

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

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

progressbar模块

现在cmd中下载progressbar模块,命令是

pip install progressbar

即可安装成功

然后在pycharm中安装progressbar模块

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

勾选Install to user's site packages directory

点击Install Package

代码如下:

from progressbar import *
import time
pro = ProgressBar()  # 将progressbar中的ProgressBar实例化
for i in pro(range(1000)):
   time.sleep(0.01)

运行结果:

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

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

来源:https://blog.csdn.net/qq_44168690/article/details/104116406

标签:Python,print,倒计时,转圈显示,进度条
0
投稿

猜你喜欢

  • MySQL与PHP的基础与应用专题之数据控制

    2023-11-23 01:03:21
  • JavaScript 解析 Cookie 的函数

    2007-11-08 11:58:00
  • phpstudy apache开启ssi使用详解

    2023-05-25 08:04:44
  • asp 删除数据库记录的代码

    2011-02-05 10:39:00
  • 使用php语句将数据库*.sql文件导入数据库

    2023-11-23 05:11:22
  • oracle初始化参数设置

    2010-07-31 12:47:00
  • 清除SQL被注入恶意病毒代码的语句

    2010-03-03 09:59:00
  • 一些SQL查询语法参考

    2007-10-14 11:56:00
  • golang中sync.Map并发创建、读取问题实战记录

    2023-07-16 12:23:27
  • PHP xpath()函数讲解

    2023-06-04 07:03:38
  • Python实现学生成绩管理系统

    2023-08-13 09:51:17
  • Docker构建python Flask+ nginx+uwsgi容器

    2023-07-25 06:36:43
  • javascript 获取中文字符串长度

    2009-10-18 12:06:00
  • CSS content, counter-increment 和 counter-reset详解[译]

    2009-06-02 12:51:00
  • CSS布局之浮动(二)三列浮动

    2008-08-19 12:47:00
  • asp中使用js的encodeURIComponent

    2008-10-13 09:19:00
  • SQL Server从安装到建库为新手寻找捷径

    2009-01-13 13:22:00
  • ASP自动清除ACCESS数据库的日文字符

    2007-11-28 17:40:00
  • 如何制作关联的下拉菜单?

    2010-06-29 21:19:00
  • 解析PHP中一些可能会被忽略的问题

    2023-09-05 14:07:37
  • asp之家 网络编程 m.aspxhome.com