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**