使用进度条设计函数优化带刷新的文本进度条
要求:要求:修改如下代码的进度条设计函数,适当降低开始阶段的进展速度,适当加快末尾阶段的进展速度,给用户带来更快、更舒适的体验。
关键:
1、第一组是原始组,第二组是对照组,对照组用的函数为
y=(x+(1-x)*0.8)^2
2、如果自己要修改函数,应当把46也修改了,保证图形可以完全覆盖。
主要是参数46比较难改,要通过自己调试寻找。
import time
scale = 30 #设置打印次数为30
print("执行开始".center(scale//2,'-')) #返回宽度为30居中字符串
# 第一组
start = time.perf_counter() #统计时间的函数,单位为秒
for i in range (scale + 1):
a = '*'* i #设置进度条符号的个数,逐渐增加
b = '.'*(scale - i) #设置进度条符号,逐渐减少
c = (i/scale)*100 #设置进度条相关的百分比
dur = time. perf_counter () - start #代码运行时间
#3.0f指输出前三位的整数,“.”后面是指你要保留多少位的小数点。
print(" \r{:^3.0f}%[{}{}]{:.2f}s".format(c,a,b,dur),end=' ')
time.sleep (0.2) #是time库里的休眠函数,括号内为休眠的时间s
print(" \n"+"执行结束".center(scale//2,'-'))
print();
#第二组
print("执行开始".center(scale//2,'-')) #返回宽度为30居中字符串
start = time.perf_counter() #统计时间的函数,单位为秒
for i in range(scale + 1):
x = '▊' * int((i + (1 - i) * 0.8) ** 2)
y = '.' * abs(46 - int((i + (1 - i) * 0.8) ** 2)) # 此处利用函数y=(x+(1-x)*0.8)^2
c = (i / scale) * 100 # 设置进度条相关的百分比
dur = time.perf_counter() - start # 代码运行时间
# 3.0f指输出前三位的整数,“.”后面是指你要保留多少位的小数点。
print(" \r{:^3.0f}%[{}{}]{:.2f}s".format(c,x,y, dur),end=' ')
time.sleep(0.2) # 是time库里的休眠函数,括号内为休眠的时间s
print(" \n" + "执行结束".center(scale // 2, '-'))
写的不好,还请大家多多指正。