Python:文本进度条的实现和简单注释解析

Python:文本进度条的实现和简单注释解析

需求分析:
采用字符串打印的方式,打印输出可以动态变化的文本进度条,要求进度条需要能在一行中逐渐变化。
问题分析:
如何获得文本进度条的变化时间?→采用sleep()模拟一个持续的进度;
单行动态刷新→增加“\r”;(刷新的本质是用后打印的字符覆盖之前的字符,打印后光标退回到之前的位置)

代码示例(含注释简析):

#文本进度条
import time
scale=50
print("执行开始".center(scale//2,"-"))
#使用字符串处理中的.center方法,讲一个“-”字符填充在执行开始
start=time.perf_counter()  #增加计时效果
for i in range (scale+1):
  a='*'*i
  b='.'*(scale-i)
  c=(i/scale)*100
  dur=time.perf_counter()-start
  #用来每一次用来打印文本进度条所用的时间,方法就是每次调用time.perf_counter()函数
  print("\r{:^3.0f}%[{}->{}]{:.2f}s".format(c,a,b,dur),end="")
  #为了使文本进度条有单行刷新效果,增加“\r”,实现光标向行首移动
  #增加end函数,把end函数赋值为空字符串,在每次输出后不换行
  time.sleep(0.1)
print("\n"+"执行结束".center(scale//2,'-'))
#使用字符串处理中的.center方法,讲一个“-”字符填充在执行结束


#覆盖了字符串处理、数字处理以及时间库的使用等方面的内容。

注:本段代码在IDLE环境下运行时会报错。因为IDLE本身是一个编写程序的开发环境,不是程序运行的主要环境,因此要在命令行模式下运行才可以实现文本进度条的打印输出。下附具体方法。

  1. Windows+R,输入cmd,打开命令提示符;
    Python:文本进度条的实现和简单注释解析_第1张图片

  2. 通过命令,找到文件的所在位置;
    Python:文本进度条的实现和简单注释解析_第2张图片

  3. 通过命令:python 文件名称.py 完成文本进度条的单行打印输出。
    Python:文本进度条的实现和简单注释解析_第3张图片
    简单说明:
    1、计算问题扩展
    (1)文本进度条程序使用了perf_counter()计时;
    (2)计时方法适合各类需要统计时间的计算问题。
    例如:比较不同算法时间、统计部分程序运行时间等
    2、进度条应用
    (1)在任何运行时间需要较长的程序中增加进度条;
    (2)在任何希望提高用户体验的应用中增加进度条;
    (3)进度条是人机交互的纽带之一。

你可能感兴趣的:(Python:文本进度条的实现和简单注释解析)