第1题:文本进度条 (1)题目:进度条以动态方式实时显示计算机处理任务时的进度,它一般由已完成任务量与剩余未完成任务量的大小组成。编程实现进度条动态显示的效果。题解:本题可将进度条拆分四部分:百分比、已完成下载量、未完成下载量、显示输出。百分比使用“已完成下载量÷下载总量× 100%”。已完成下载量使用符号“*”表示。未完成下载量使用符号“.”来表示。 显示输出通过 print()函数与 format()函数将计算结果根据指定格式输出。通过python实现在唯一一条进度条上加载
时间: 2024-02-27 14:53:50 浏览: 136
Python实现采用进度条实时显示处理进度的方法
以下是Python代码实现在唯一一条进度条上加载文本进度条的动态显示效果:
```python
import time
total = 100 # 下载总量
completed = 0 # 已完成下载量
progress = 0 # 进度条显示进度
while completed < total:
completed += 1
progress = completed / total * 100
output = '\r{:.2f}% ['.format(progress)
output += '*' * int(progress / 2)
output += '.' * (50 - int(progress / 2))
output += ']'
print(output, end='', flush=True)
time.sleep(0.1)
print('\n下载完成!')
```
代码解释:
1. 与第一题的方法类似,首先定义了三个变量:`total` 表示下载总量,`completed` 表示已完成下载量,`progress` 表示进度条显示进度,初始值都为 0。
2. 进入 while 循环,每次循环将 `completed` 增加 1,然后计算 `progress` 的值,即已完成下载量占下载总量的百分比。
3. 定义一个 `output` 变量来存储要输出的进度条字符串。首先插入百分比,然后使用 `'*'` 来填充已完成部分,使用 `'.'` 来填充未完成部分,最后将整个字符串输出到控制台。
4. 为了让进度条动态显示,使用了 `\r` 来回车,将光标移动到行首,然后再输出新的进度条字符串,这样就能够实现动态显示的效果。
5. 为了让进度条能够慢慢变化,使用了 `time.sleep(0.1)` 来让程序暂停 0.1 秒。
6. 在 `print()` 函数中加入 `flush=True` 参数,表示立即将输出写入到终端,避免缓存问题。
7. 当下载完成后,跳出 while 循环,输出提示信息。
运行以上代码,即可看到如下的文本进度条在唯一一条进度条上加载的动态显示效果:
```
1.00% [..................................................]
2.00% [*.................................................]
3.00% [*.................................................]
4.00% [**................................................]
5.00% [**................................................]
6.00% [***...............................................]
7.00% [***...............................................]
8.00% [****..............................................]
9.00% [****..............................................]
...
92.00% [**************************************************.]
93.00% [**************************************************.]
94.00% [**************************************************.]
95.00% [**************************************************.]
96.00% [**************************************************.]
97.00% [**************************************************.]
98.00% [**************************************************.]
99.00% [**************************************************.]
100.00% [**************************************************]
下载完成!
```
可以看到,进度条在唯一一条线上加载,更加美观。
阅读全文