Python下定义一个函数来显示相应的进度条
来源:互联网 发布:微信秒杀软件哪个好 编辑:程序博客网 时间:2024/05/22 09:50
最近博主在写一个梦想完成度.py,用来检测电脑里写了多少脚本 但是发现如果没有一个进度条的话,看起来有点不方便,不够直观
所以博主设想:可不可以def一个函数,比如processbar(number),这里输入进的number是一个小数,而函数自动将小数转化成进度条呢?
============================================如果仅需要代码,请跳到文章最后
经过一番思考,我觉得可以打印一个进度条,例如:
#┌──────────┬────┐
#│██████████ │ 100%│ Sample
#└──────────┴────┘
像这样
外边的框架是固定的,但是里边的'█'符号一共就十个,
例如,当processbar(number)读取的number是0.12 => number乘以10变成1.2,再用地板除 => 1.2 // 1 = 1
这样用一次for循环就打印出1个'█'图形,由于'█'图形总共就是10个,所以这样大约的代表0.12的进度条
像这样:
#┌──────────┬────┐
#│█ │ 12%│ Sample
#└──────────┴────┘
百分比那里可以用字符串格式化来右对齐,保证进度条的美观
发现问题:
经过测试我们发现,一个'█'图形占用的是两个空格的位置,这样一来随着'█'图形数量的改变,进度条的框架也会后退
例如:
#┌──────────┬────┐
#│█ | 0.11%│
#└──────────┴────┘
#┌──────────┬────┐
#│███ | 0.33%│
#└──────────┴────┘
#┌──────────┬────┐
#│████████ | 0.82%│
#└──────────┴────┘
观察到了吗?百分比前面的那个'|'符号会浮动
因此,通过反复观察与测试,我得到了以下结果:
#┌──────────┬────┐
#│█ | 0.11%│ 19 spaces
#└──────────┴────┘
#┌──────────┬────┐
#│██ | 0.22%│ 17 spaces
#└──────────┴────┘
#┌──────────┬────┐
#│███ | 0.33%│ 15 spaces
#└──────────┴────┘
也就是说
#┌──────────┬────┐
#│<=这一段距离=>| 0.15%│
#└──────────┴────┘
一个黑块占两个空格宽,那么上图中这一段距离一共是21个字符间隔
所以这样就得到了数学关系式了,即可设计代码了:
def processbar(num):#显示出进度条的函数#┌──────────┬────┐#│██████████│ 100.00%│ Sample#└──────────┴────┘ temp = (eval(num) * 10) // 1 spaces = (21 - int(temp)*2) * ' ' temp = str(int(temp) * '█')+spaces bar = '''┌──────────┬────┐│{:10s}|{:7.2f}%│└──────────┴────┘'''.format(temp,float(num)) print(bar)
代码编译完毕 这样一来只需要输入一个浮点数,然后processbar就会生成一个格式整齐的进度条的字符串啦
在下python小鲜肉一枚 若有不妥,还请多多指教
- Python下定义一个函数来显示相应的进度条
- Windows Phone 通过相应的进度条来绑定
- Drawable 下定义一个会旋转的ui
- 如何弹出一个模式窗口来显示进度条
- 如何弹出一个模式窗口来显示进度条
- 如何弹出一个模式窗口来显示进度条
- 如何弹出一个模式窗口来显示进度条
- 如何弹出一个模式窗口来显示进度条
- 如何弹出一个模式窗口来显示进度条
- 如何弹出一个模式窗口来显示进度条[c#]
- 如何弹出一个模式窗口来显示进度条
- 如何弹出一个模式窗口来显示进度条
- 如何弹出一个模式窗口来显示进度条
- C# Winform如何弹出一个模式窗口来显示进度条
- 一个按照行来截取显示文章摘要的函数
- Spinner 下定义一个setOnItemSelectedListener
- 使用Angularjs获取数组中的值利用一个函数的返回值来决定相应的dom是否生成
- 利用钩子函数来注入DLL的一个具体应用:点击桌面不同图标,播放相应音符
- linux+cmake+opencv+运行
- android 资源uri
- SSH不能连接并提示REMOTE HOST IDENTIFICATION HAS CHANGED解决(mac)
- CSS设置输入框默认文字颜色(webkit-input-placeholder等)
- android 对话框样式
- Python下定义一个函数来显示相应的进度条
- HTML学习笔记
- 网络流对于二分图的 最小点覆盖数 最大匹配数 最大独立点集数 的作用
- Singleton
- 二进制的补码、反码
- android studio常用设置
- 使用 Ambari 安装 Hbase
- java.lang.ClassNotFoundException: com.mysql.jdbc.Driver原因
- leetcode-7-Reverse Integer