Python-文本进度条实例

文本进度条

    采用字符串方式打印可以动态变化的文本进度条 进度条需要能在一行中逐渐变化

单行动态刷新

    刷新的本质:用之后打印的字符覆盖之前的字符 不能换行:print()需要被控制 要能回退:打印后光标退回到之前的位置

时间统计

start = time.perf_counter() #开始计时
for i in range(100):
    #逻辑代码    
    dur = time.perf_counter() - start;
    print("代码执行用时{0:.2f}".format(dur));

完整效果

#文本进度条
import time
print("-----开始执行-----");
start = time.perf_counter();
for i in range(10):
    a = (i+1)*10;
    b = * * i;
    c = . * (10 - i-1);
    dur = time.perf_counter() - start;
    print("
" + "{0:^3.0f}%[{1}->{2}]{3:.2f}s".format(a,b,c,dur), end="");
    time.sleep(0.5);
print("
"+"-----执行结束-----");

举一反三 :计算问题的扩展

文本进度条程序使用了perf_counter()计时,计时方法适合各类需要统计时间的计算问题,例如:比较不同算法时间、统计程序运行时间。

举一反三 :进度条的应用

在任何运行时间需要较长的程序中增加进度条,在任何希望提高用户体验的应用中增加进度条,进度条是人机交互的纽带之一。

难点:

1. perf_counter() 返回一个CPU级别的精确时间计数值,单位为秒,由于这个计数值起点不确定,连续调用计算差值才有意义

2. print() 详解

print函数默认换行,是end= 在起作用

#print语法
#print(*objects, sep= , end=
, file=sys.stdout)
#参数
#objects -- 复数,表示一次可以输出多个对象。输出多个对象时,需要用,分隔。
#sep -- 用来间隔多个对象,默认值是一个空格。
#end -- 用来设定以什么结尾。默认值是换行符
,我们可以换成其他字符串。
#file -- 要写入的文件对象

print("Hello");
print("Hello","World");
print("www","baidu","com",sep=".");#设置间隔符
for i in range(10):
    print(i, end="**"); #不换行,结尾追加**

#运行结果
#Hello
#Hello World
#www.baidu.com
#0**1**2**3**4**5**6**7**8**9**
经验分享 程序员 微信小程序 职场和发展