Python学习笔记 八 (time库实例练习-文本进度条)

Python学习笔记 八 (time库实例练习-文本进度条)

在前面对time库的学习后,现在通过time库实例-文本进度条来巩固所学知识,希望能对你我有益。

目录

  • 问题分析
  • 编写代码
  • 总结
一、问题分析

这次练习主要是实现一个文本进度条,其中涉及的问题是如何获取程序的进展程度,如何实现刷新,如何一直展示进展程度等问题。

解决办法:

  1. 利用time库中的perf_counter()来获取程序运行时间
  2. 由于刷新的本质是后面的覆盖前面的,所以利用\r来实现每次运行光标都恢复到最前面,来实现刷新的效果。
  3. 利用循环来实现一直展示到结束。
  4. 对print()进行控制,不让print()换行,利用end = ’ ',实现单行输出。
二、编写代码
#文本进度条的实现
import time
long = 50
print("程序开始".center(long,"*"))
start = time.perf_counter()
for i in range(long + 1):
    a = '=' * i			#将 ‘ = ’ 复制 i 次
    b = '*' * (long - i)
    c = (i / long) * 100	#百分数的计算
    t = time.perf_counter() - start		#获取每次刷新程序运行时间
    print("\r{:^3.0f}%[{}->{}]{:.2f}s".format(c, a, b, t),end = '')
    time.sleep(0.1)	#使程序每次执行后暂停一下,便于观察刷新效果
print("\n" + "程序结束".center(long,'*'))

由于IDLE是开发环境而不是运行环境,所以在使用IDLE运行时,IDLE会屏蔽 \r ,因此我们需要在Windows环境下或其他环境下运行,下面是通过Windows环境下运行的。

  1. win键 + R 输入cmd打开控制台
  2. 使用cd命令进入程序所在的文件夹
  3. 使用Python 文件名.py运行程序就会得到如下效果

程序效果
在这里插入图片描述
在这里插入图片描述

三、总结
  1. 首先我两次调用了time库中的perf_counter()计算差值来获取程序运行时间。
  2. 由于计算机运算速度较快,我利用sleep()在每次执行时进行短暂暂停,使得刷新效果能被人观察到。
  3. 使用控制槽 { }.format()来控制输出格式。
  4. 使用字符串处理“字符串”.center(宽度,填充内容)来控制提示信息的格式化输出。
  5. 在print()的输出时参数中添加end = ’ '使print()不换行,默认是换行的。
  6. format()函数的参数和槽之间在没有指定的情况下是按顺序一一对应的,若是在槽引导符前指定了所对应参数,优先使用指定的关系。

待续…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值