软件测试学习 之 Python 模拟倒计时、百分比进度
转载自-百度经验
作者:BinnLZeng
原文:怎么用Python的print在一行中打印(计时器功能)
场景设计
最典型的这样一种场景:我们在控制台内需要一个倒计时的功能,例如提示,程序将在x秒后启动。或者用python开发下载程序,用于在一行中显示下载百分比进度。
我们来看看这两个程序:
第一个是倒计时:
第二个是显示百分比进度:
我们要实现的就是这样的功能。
实现倒计时功能
我们要实现这样的功能,我们就必须要开启print的缓冲区和让print不换行。
我们仔细看看print的参数:
print(value,sep=' ',end='\n',file=sys.stdout,flush=False)
value 是我们要打印的字符串,
sep 是value之间的间隔(我们可以print("Hello","Python")看到中间确实有一个空格间隔开了)
end 是打印完成之后要打印的事,print默认在结束的时候打印一个\n,即换行(我们想要print不换行,只要把end参数换成''即可)。
file=sys.stdout 则是打印到哪里 sys.stdout是系统的控制台,即标准输出设备
flush=False 是说明print不开启缓冲区(部分终端会延迟输出,不会即时显示),开启缓冲区只需把flush设置成True即可。
这些说明,我们可以在python IDLE(Python)中输入print(看到,如图
注:python IDLE是Python软件包自带的一个集成开发环境,初学者可以利用它方便地创建、运行、测试和调试Python程序。IDLE是跟Python一起安装的,不过要确保安装时选中了“Tcl/Tk”组件,准确地说,应该是不要取消该组件,因为默认时该组件是处于选中状态的。
“开始”菜单→“所有程序”→“Python 2.7”→“IDLE(Python GUI)
OK,我们来开始写第一个程序,倒计时程序,这里小编倒计时5秒。
我们要使用倒计时的话,要用到time模块
#-*- coding:utf-8 -*-
import timeprint("倒计时程序")
for x in range(5,-1,-1):mystr = "倒计时" + str(x) + "秒"print(mystr,end = "")print("\b" * (len(mystr)*2),end = "",flush=True)time.sleep(1)
但是我们不能直接按下F5在Python IDLE的Shell中运行,Python的IDLE无法识别\b字符,所以我们只能在控制台看到正确的结果。
注:
range(5,-1,-1):
使用range产生一个列表,从5开始到-1之前结束。range的用法是range(开始,结束,步长),因为我们是要从大到小,所以我 们用-1表示步长为-1,意味着每次-1,如果是-2,那就是每次-2
str(x):
把x变量转换成字符串
print(mystr,end = "") :
我们打印字符串之后,不换行,即end=""
print("\b" * (len(mystr)*2),end = "",flush=True):
"\b" * (len(mystr)*2)这句话的意思是,打印'\b'这个转义字符,然后打印len(mystr)*2次。len得到字符串长度,为什么要*2 呢?要知道,我们用的字符串是中文,而1个中文字符 = 2个英文字符(占位),所以,如果字符串是英语,我们完全可以 不*2,但是中文字符就不同了。具体小伙伴可以把*2去掉试试看
flush = True:
开启缓冲区
\b转义字符:
退格功能,相当于在编辑文件的时候按下BackSpace键,从光标位置往前删掉一个字符
time.sleep(1):
让程序暂停1秒
这样做的就能每次print之后,\b帮我们把一行内的字符都清光,这就是我们为什么要获得字符串长度的原因
实现百分比进度功能
让我们做第二个显示百分比进度的程序:
#-*- coding:utf-8 -*-import timeprint("显示百分比")
for x in range(101):mystr = "百分比" + str(x) + "%"print(mystr,end = "")print("\b" * (len(mystr)*2),end = "",flush=True)time.sleep(0.5)
原理和倒计时程序一样,同样不能在IDLE中运行哦。
附:
循环(10次)输出动态【loading......】效果(参考以上方法手动实现)
import timeprint("Loading", end="")
temp_time = 0
while temp_time < 10:for i in range(6):print(".", end="")time.sleep(0.3)print("\b" * 6, end="")temp_time += 1
扩展阅读
python的print(flush=True)实现动态loading......效果
作者:Granthoo 出处:csdn
python实现原地刷新方式输出-可用于百分比进度显示输出
作者:weixin_33736048 出处:csdn
软件测试学习 之 Python 模拟倒计时、百分比进度相关推荐
- 软件测试python基础_软件测试学习教程——python基础
原标题:软件测试学习教程--python基础 一,print()函数 print 作用:把" "内部的内容,输出到屏幕. print("hello world" ...
- 软件测试学习 之 Python 类属性 实例属性、实例方法 类方法 静态方法
本篇的主要内容是自己的手动操作的学习记录,关于个名词的理论概念参见以下文章: Python 实例方法.类方法.静态方法的区别与作用 作者:蔷薇Nina 出处:博客园 python3类对象.实例对象.类 ...
- 软件测试学习 之 Python 函数默认参数
转载说明 作者:珞樱缤纷 出处:博客园 博文:Python进阶-函数默认参数 Python进阶-函数默认参数 写在前面 如非特别说明,下文均基于Python3 一.默认参数 python为了简化函数的 ...
- 软件测试学习 之 Python 两种执行方式——python和python -m 的区别
笔者使用的操作系统为windows 7,python解释器版为python3.7,pycharm版本为pycharm2018.3 如无特殊说明,代码均在此环境执行 目录 一般结论 简单例子 模块 作为 ...
- 学习《python模拟测试机器人》笔记2
游戏测试机器人搭建 - Send Actor 初始化,启动,心跳包,序列化和发送数据,停止,收集 Send Actor Send Actor初始化 class SendActor(pykka.Thre ...
- python模拟网页点击_python模拟点击
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! python怎么模拟点击网页按钮前提环境:python3 和 visual st ...
- python爬虫学习笔记2模拟登录与数据库
前言 为了加入学校里面一个技术小组,我接受了写一个爬取学校网站通知公告的任务.这个任务比以前写的爬虫更难的地方在于,需要模拟登录才能获得页面,以及将得到的数据存入数据库. 本文按照日期来记录我完成任务 ...
- Python项目实战学习案例--股票模拟交易系统
Python学习案例–股票模拟交易系统 源代码地址:https://gitee.com/wujize188_admin/mini_stock.git 主要技术 后台:Flask框架,sqlalchem ...
- Python学习教程:用Python模拟登录淘宝
今天跟大家出的Python学习教程,Python模拟登录淘宝,我知道,肯定是吸引了你,一起来看看吧! 最近想爬取淘宝的一些商品,但是发现如果要使用搜索等一些功能时基本都需要登录,所以就想出一篇模拟登录 ...
最新文章
- Activiti——工作流之流程实例、任务的执行(五)
- python高级语法-高阶函数之map的使用方法
- 带有Prometheus的弹簧靴和千分尺第5部分:旋转Prometheus
- next和hasnext_使用Java中的next()和hasNext()方法遍历List元素
- 试着用React写项目-利用react-router解决跳转路由等问题(二)
- 使用sklearn预测走势_Prophet: 时间序列预测库
- 剑指 Offer 55 - I. 二叉树的深度
- 剑指offer刷题 04. 二维数组中的查找
- mysql5.7优化案例_MYSQL5.7函数索引优化案例【企业数据库实战优化项目】
- 8.15-30题目归档
- 树莓派Python读取DHT11温湿度数据
- 大数据带来了哪些改变
- 知言:《第一行代码》作者郭霖:不要成为工具的奴隶
- 数据结构java朱战立pdf_数据结构使用C语言 朱战立,刘天时编著.pdf
- 离散数学:关系的性质
- 基于LSTM的上证指数预测
- 奔跑的微信,失控的张小龙
- 实测几款常见的DNS,看防护能力怎么样?
- ps cs6导出html,Photoshop cs6导出和载入笔刷方法介绍
- ubuntu 常见错误--Could not get lock /var/lib/dpkg/lock
热门文章
- Linux系统如何操作关机或重启180.188.22.X
- pojnbsp;百炼nbsp;2965:玛雅历
- Wdcp安装不存在phps的问题
- 如何设置电脑窗口为护眼色
- 技术面试之反向面试问什么?很多人都不知怎么问。
- 每日简报 4月6日简报新鲜事 在这里,60秒读懂世界
- hdu6681 Rikka with Cake(主席树)
- MPEG-CDVS标准概述论文粗译 Overview of the MPEG-CDVS Standard
- 城市的未来要押注无人驾驶汽车吗?这是个艰难的抉择
- 蓝桥杯 | 扑克排序(详细解析)