当前位置:首页 » 《随便一记》 » 正文

Python--文本进度条

18 人参与  2024年04月01日 16:20  分类 : 《随便一记》  评论

点击全文阅读


1、print()函数

利用print()函数实现简单的非刷新文本进度条

1.1 基本思想:

按照任务执行百分比将整个任务划分为100个单位,每执 行N%输出一次进度条。每一行输出包含进度百分比,代表已完成的 部分(**)和未完成的部分(..)的两种字符,以及一个跟随完成度前进的 小箭头,

风格如下:%10 [*****->.............................................]

1.2 代码示例:

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

1.3 效果:

2、单行动态刷新

IDEA输出没有单行刷新,因为IDLE本身屏蔽了单行刷新功能,如果希望获得刷新效果,请使用PyCharm执行

2.1 代码示例

import timefor i in range(101):    print("\r{:2}%".format(i), end="")    time.sleep(0.05)

2.2 结果:

3、带刷新的文本进度

3.1 代码示例

import timescale = 50print("{0:-^20}".format("执行开始"))for i in range(scale + 1):    a = '*' * i    b = '.' * (scale - i)    c = (i/scale) * 100    print("\r{:^3.0f}%{}->{}".format(c,a,b),end="")    time.sleep(0.5)print("")print("{0:-^20}".format("执行结束"))

3.2 效果:

4、进度条设计函数

设计名称趋势设计函数
LinerConstantf(x) = x
Early PauseSpeeds upf(x) = x+(1-sin(x*π*2+π/2))/-8
Late PauseSlows downf(x) = x+(1-sin(x*π*2+π/2))/8
Slow WavyConstantf(x) = x+sin(x*π*5)/20
Fast WavyConstantf(x) = x+sin(x*π*20)/80
PowerSpeeds upf(x) = (x+(1-x)*0.03)2
Inverse PowerSlows downf(x) = 1+(1-x)1.5 *-1
Fast PowerSpeeds upf(x) = (x+(1-x)/2)8
Inv. Fast PowerSlows downf(x) = 1+(1-x)3 *-1


点击全文阅读


本文链接:http://zhangshiyu.com/post/89089.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1