-
2021-01-31 18:30:38
文本进度条
----采用字符串方式打印可以动态变化的文本进度条
——进度条需要能在一行中逐渐变化
如何获得文本进度条的变化时间
——采用sleep()模拟一个持续的进度文本进度条的简单开始
#TextProBarv1.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("-----执行结束------")
解释:
文本进度条的单行动态刷新
他能够在每一行中根据程序的进度,不断的显示文本进度条的信息,但是不换行
刷新的本质
就是用后打印的字符信息覆盖之前信息
例如:之前出现的是10,然后第二次出现的是20,那么刷新后就是20,20会替代10出现在原来的位置上
单行刷新要求i我们不能换行,因为换行后之前的信息不能被修改。
所以要求我们 print()需要被控制,
要能退回,打印后光标退回到之前的位置\r
刷新的关键是\r
百分数的输入:#Text.py import time for i in range (101): print("{:3}")
完整效果的文本进度条
之前一直没有成功,原因竟然是运行地方不对,之前一直是在文本中进行的,这个是在命令提示符中进行的,大家一定要谨记,加油#TextProBar.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}%[{}->{}]{:.2f}s".format(c,a,b,dur),end="") time.sleep(0.1) print("\n"+"执行结束".center(scale//2,'-'))
更多相关内容 -
Python文本进度条
2021-01-20 03:26:13实例4:文本进度条 ... -
python实现文本进度条 程序进度条 加载进度条 单行刷新功能
2021-01-01 14:51:32python实现文本进度条 程序进度条 加载进度条 单行刷新功能,具体内容如下所示: 利用time库来替代某个程序 的进行过程,做实例, 思路是,简单打印出来程序进度 单行刷新关键是\r, python默认是print后换行,所以... -
Python:文本进度条的实现和简单注释解析
2020-12-22 02:07:58Python:文本进度条的实现和简单注释解析 需求分析: 采用字符串打印的方式,打印输出可以动态变化的文本进度条,要求进度条需要能在一行中逐渐变化。 问题分析: 如何获得文本进度条的变化时间?→采用sleep()模拟... -
python动态文本进度条的实例代码
2020-12-23 03:49:49#文本进度条.py import time scale = 50 print("执行开始".center(scale, "-"))//居中对齐 start = time.perf_counter()//获取起始时间 for i in range(scale+1): a = i*'*' b = (scale-i)*'.' c = (i/scale)*100... -
Python在Console下显示文本进度条的方法
2021-01-20 04:53:19进度条实现原理 进度条和一般的print区别在哪里呢? 答案就是print会输出一个\n,也就是换行符,这样光标移动到了下一行行首,接着输出,之前已经通过stdout输出的东西依旧保留,而且保证我们在下面看到最新的输出... -
文本进度条:此函数在您的命令窗口中创建一个文本进度条。-matlab开发
2021-05-30 22:02:35此函数创建一个文本进度条,以在命令窗口中显示脚本的进度。 应该使用 STRING 参数调用它来初始化和终止。 否则,应提供与进度相对应的数字。 输入:要初始化或终止的文本字符串显示进度的百分比输出:N / A 示例... -
文本进度条(CLI 和 GUI):生成一个在 MATLAB 命令窗口或 CLI 中显示的进度条-matlab开发
2021-05-29 05:29:37此函数生成一个文本栏,用于显示任务的进度。 连续的进度条会覆盖之前的实例而不是在新行上输出,从而使更新无缝。 段数以及组成进度条的字符(分隔符、已完成等)是完全可定制的。 适用于 MATLAB 的 GUI 和 CLI ... -
[Python] 实现文本进度条
2022-04-24 18:40:16怎么利用格式化输出和时间延迟来实现控制台风格的文本进度条呢简单的开始
进度条是计算机处理任务或执行软件中常用的增强用户体验的重要手段,它能度条功能。今天我们将利用 Python 字符串处理方法实现文本进度条功能。
最简单地,利用 print() 函数实现简单的非刷新文本进度条。基本思想是按照任务执行百分比将整个任务划分为 100 个单位,每执行 N% 输出一次进度条。 每一行输出包含进度百分比,代表已完成的部分(**) 和未完成的部分(…)的两种字符,以及一个跟随完成度前进的小箭头,风格如下:
%10 [***** -> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .]
由于程序执行速度远超过人眼的视觉停留时间,直接进行字符输出几乎是瞬间完成,不利于观察。为了模拟任务处理的时间效果,调用 Python 标准时间库 time,使用 **time sleep()**函数将当前程序暂时挂起 t s, t 可以是小数。由此可以接近真实的模拟进度条效果输出。使用 import 保留字调用 time 库。
import time
默认情况,print() 函数在输出结尾处会自动产生一个 ‘\n’, 即换行符,从而让光标自动移动到下一行行首,这样上一步输出依旧保存在界面上。
采用 for 循环和 print() 函数构成程序的主体部分,输出百分比最高(100%)为 3 位数据,为了使输出显得整齐,可以使用 {:^3.0f} 格式化百分比部分。这个简单的文本进度条代码如下。变量 scale 表示输出进度条的精度,我们可以修改这个值观察效果变化。
import time scale = 10 print("------执行开始------") for i in range(scale+1): a = '**' * i b = ' . . ' * (scale - 1) 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[******************** -> . . . . . . . . . . . . . . . . . . ]
------执行结束------单行动态刷新
常用的计算机系统中都有进度条,这些进度条般只在一行中改变进度比例,与前面的代码相比,区别在于原地输出和动态刷新,其基本思想是将每次进度输出都固定在同一行,并不断地用新生成的字符串覆盖之前的输出,形成进度条不断刷新的动态效果。这种效果称为“单行动态刷新”,可以通过 print() 函数实现。
采用 print() 函数的具体方法是,在 print() 函数中更换参数 end 的默认值为’ ',即每次使用 print() 函数输出时不换行。此时,系统输出指针还停留在上一次输出的行尾,下一次输出在字符串前部增加转义符 ‘\r’,该转义符把输出指针移动到行首而不换行。动态刷新一个百分比的完整代码如下:
import time for i in range(101): print("\r{:3}%".format(i),end=' ') time.sleep(0.05)
运行结果如下:
带刷新的文本进度条
将前两小节的程序合并,再添加开始和结束提示语,可以很好地实现带刷新的文本进度条。为了进一步提高用户体验,在文本进度条中增加运行时间的监控,这里采用 time 库中的 time.perf_counter() 函数。time.perf_counter() 函数一 般多次出现, 第一次调用时计时开始,同一程序中第二次及后续调用时返回与第一次计时之间的时间差, 单位为微秒。该函数主要用来统计程序运行时间,增加用户体验。文本进度条完整代冯如下:
import time scale = 50 print("执行开始".center(scale // 2, '-')) t = time.perf_counter() # 单位为微秒 for i in range(scale + 1): a = '*' * i b = '.' * (scale - i) c = (i / scale) * 100 t -= time.perf_counter() print("\r{:^3.0f}% [{} -> {}] {:.2f}s".format(c, a, b, -t/1000000), end=' ') time.sleep(0.05) print("\n" + "执行结束".center(scale // 2, '-'))
运行结果如下:
这次的分享就到这里啦,继续加油哦^^有出错的地方欢迎在评论区指出来,共同进步,谢谢
-
Python 之文本进度条
2022-01-08 22:38:07看到进度条一点点逼近百分之百,是不是很有成就感?!看到进度条一点点逼近百分之百,是不是很有成就感?!
下面我们就借助 python 来实现它。
为了能够更直观,我们姑且赋予开始和结束提示:
#文本进度条 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('------执行结束------')
或者为了体现时间逝者如斯夫,可以借助 time.perf_counter() 函数:
import time scale=20 print('执行开始'.center(scale,'-')) 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('{:^3.0f}%[{}->{}]{:^6.2f}s'.format(c,a,b,dur)) time.sleep(0.1) print('执行结束'.center(scale,'-'))
要体现动感,则需要 '\r' 和 end='' 出场:
import time scale=100 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}%[{}->{}]{:^6.2f}s'.format(c,a,b,dur),end='') time.sleep(0.1)
怎么样,是不是很有律动感呢?
-
Python 文本进度条
2022-02-14 22:10:54Python学习案例——文本进度条个人练习,仅供参考
这是程序要求
import time length = 50 #进度条长度 string1 = "开始下载" print(string1.center(56, "=")) #将string1居中显示,然后填充= for i in range(length + 1): c = (i / length) * 100 #进度条 a = '*' * i #填充* b = '.' * (length - i) #填充. print("\r{:3.0f}%[{}->{}]".format(c, a, b), end="") # \r回车,让光标回到行首 time.sleep(0.08) # 暂停给定秒数后执行程序 string2 = "下载完成" print("\n" + string2.center(56, "="))
这是程序代码
这是运行过程
这是运行结果
-
“文本进度条”实例(2)
2022-02-07 14:47:55"文本进度条"单行动态刷新 像文本进度条一样,它能够在每一行中根据程序的进度不断的显示文本进度条的信息 刷新的关键是\r 刷新的本质:用后打印的字符覆盖之前的字符 不能换行:print()需要被控制,使其输出在... -
python制作文本进度条
2022-03-17 13:36:03代码如下: import time scale=20 print("执行开始".center(scale,'-')) start=time.perf_counter() for i in range(scale+1): a='**'*i b='..'*(scale-i) c=(i/scale)*100 t=time.perf_counter()-start ... -
python使用进度条设计函数优化带刷新的文本进度条
2022-04-22 15:18:48使用进度条设计函数优化带刷新的文本进度条 要求:要求:修改如下代码的进度条设计函数,适当降低开始阶段的进展速度,适当加快末尾阶段的进展速度,给用户带来更快、更舒适的体验。 关键: 1、第一组是原始组,第... -
Python简单文本进度条实现
2021-11-27 16:46:25Python实现简单的文本进度条,且单行动态刷新 -
制作文本进度条
2021-11-13 14:50:50制作一个模拟windows启动界面的文本进度条 import time s = """ -------------------- | | | | | | -------------------- | | | | | -
Python实例4:文本进度条
2020-11-24 07:37:38Python实例4:文本进度条采用字符串方式打印动态变化的文本进度条;进度条需要在一行中逐渐变化;采用sleep()模拟一个持续的进度;单行动态刷新:用后打印的字符覆盖之前的字符;print()需要被控制;打印后光标退回... -
Python实例2:文本进度条(time库)
2022-04-22 19:02:44采用字符串方式打印可以动态变化的文本进度条,进度条需要能在一行中逐渐变化...