python使用进度条设计函数优化带刷新的文本进度条

使用进度条设计函数优化带刷新的文本进度条

要求:要求:修改如下代码的进度条设计函数,适当降低开始阶段的进展速度,适当加快末尾阶段的进展速度,给用户带来更快、更舒适的体验。


关键:

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, '-'))

写的不好,还请大家多多指正。

猜你喜欢

转载自blog.csdn.net/qq_45960449/article/details/124346719