3.5 实例4:文本进度条

2020-03-18  本文已影响0人  郭柯廷

课程来源:[中国大学MOOC_Python语言程序设计_北京理工大学_崇天](https://www.icourse163.org/learn/BIT-268001?tid=1002788003


三、基本数据类型

3.5 实例4:文本进度条

进度条

需求分析

文本进度条

如何获得文本进度条的变化时间

文本进度条的简单开始

#TimeProBarV1.py
import time

scale = 10
print("-----执行开始-----")
for i in range(scale + 1):
    a = '*' * i
    b = '.' * (scale - i)
    c = (i/scale)*100
    print("{:^3.0f}%[{}->{}]".format(c, a, b))
    time.sleep(0.1)
print("-----执行结束-----")

>>>
-----执行开始-----
 0 %[->..........]
10 %[*->.........]
20 %[**->........]
30 %[***->.......]
40 %[****->......]
50 %[*****->.....]
60 %[******->....]
70 %[*******->...]
80 %[********->..]
90 %[*********->.]
100%[**********->]
-----执行结束-----

"文本进度条"单行动态刷新

单行动态刷新,关键\r

#TimeProBarV2.py
import time

print("-----执行开始-----")
for i in range(101):
    print("\r{:3}%".format(i), end = "")    #\r表示再打印输出字符串时先使光标退回到行首
    time.sleep(0.1)
print("-----执行结束-----")

"文本进度条"实例完整效果

完整效果

#TimeProBarV3.py
import time

scale = 50
print("执行开始".center(scale//2, "-"))
start = time.perf_counter()
for i in range(scale + 1):
    a = '*' * i
    b = '.' * (scale - i)
    c = (i/scale)*100
    dur = time.perf_counter() - start
    print("\r{:^3.0f}%[{}->{}]".format(c, a, b, dur), end = "")
    time.sleep(0.1)
print("执行结束".center(scale//2, '-'))

举一反三

计算问题扩展

进度条扩展

九种不同的进度条

<center>设计名称</center> <center>趋势</center> <center>描述</center>
Linear Constant f(x) = x
Early Pause Speeds up f(x) = x + (1-sin(xπ2+π/2))/-8
Late Pause Slows down f(x) = x + (1-sin(xπ2+π/2))/8
Slow Wavy Constant f(x) = x+sin(xπ5)/20
Fast Wavy Constant f(x) = x+sin(xπ20)/80
Power Speeds up f(x) = (x+(1-x)*0.03)2
Inverse Power slows down f(x) = 1+(1-x)1.5*-1
Fast Power Speeds up f(x) = (x+(1-x)/2)8
Inverse Fast Power Slows down f(x) = 1+(1-x)3*-1
上一篇 下一篇

猜你喜欢

热点阅读