打印名片-课后程序(Python程序开发案例教程-黑马程序员编著-第二章-课后作业)

实例3:文本进度条

进度条以动态方式实时显示计算机处理任务时的进度,它一般由已完成任务量与剩余未完成任务量的大小组成。本实例要求编写程序,实现图1所示的进度条动态显示的效果。

  1. 下载中

 

  1. 下载完成

 

图1文本进度条

实例分析

在本实例中可以将进度条拆分为百分比、已完成下载量、未完成下载量、显示输出四部分,其中百分比使用已完成下载量除以下载总量乘100%所得,已完成下载量使用符号“*”表示,未完成下载量使用符号“.”来表示,显示输出通过print()函数与format()函数将计算结果根据指定格式输出。

进度条中的下载总量可以设定为50,使用for循环遍历range()函数生成显示下载总量的整数序列,使用print()函数与format()函数将它们进行格式化输出;进度条的实时刷新可以使用\r来完成,\r可以将输出的内容返回到第一个指针,后面的内容将会覆盖掉前面的内容,便可以完成实时刷新的效果;最后使用time模块中的sleep()方法控制进度条下载的速度。根据以上分析可整理出以下实现思路:

(1)导入time模块

(2)设定下载总量

(3)设定for循环的次数

(4)在for循环中分别计算已完成下载量、未完成下载量、百分比

(5)在for循环中对已完成下载量、未完成下载、百分比进行格式化输出

(6)设置进度条下载速度

代码实现

import time           # 导入time模块

incomplete_sign = 50   # 下载总量

print('='*23+'开始下载'+'='*25)

for i in range(incomplete_sign + 1):

    completed = "*" * i   # 已完成下载量

    incomplete = "." * (incomplete_sign - i)  # 未完成下载量

    percentage = (i / incomplete_sign) * 100  # 百分比

    print("\r{:.0f}%[{}{}]".format(percentage, completed, incomplete),

 end="")

    time.sleep(0.5)

print("\n" + '='*23+'下载完成'+'='*25)

首先使用import语句导入time模块,然后将设定的下载总量赋值给变量incomplete_sign,通过for循环遍历range()函数生成的整数序列。需要注意的是,当range()函数没有指定其实数字时,生成的整数序列从0开始,当进度条下载量为0%时,需要使用50个“.”表示,因此生成的整数序列为incomplete_sign+1,接着分别计算已完成下载量,未完成下载量、百分比。在使用print()函数输出时,需要注意最后使用end=""替换末尾的换行符,这样每次刷新的进度条都只在一行中显示。

代码测试

运行代码,控制台输出结果如下(下载中):

=======================开始下载=========================

56%[****************************......................]

运行代码,控制台输出结果如下(下载完成):

=======================开始下载=========================

100%[**************************************************]

=======================下载完成=========================

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiaozhima-dun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值