Python学习笔记(四)——time库的使用

Python学习笔记(四)——time库的使用

time库的使用

time库是Python中处理时间的标准库

  • 计算机时间的表达

  • 提供获取系统时间并格式化输出功能

  • 提供系统级精确计时功能,用于程序性能分析

import time

time.<b>()

time库的三类函数

  • 时间获取:time() ctime() gmtime()

  • 时间格式化:strftime() strptime()

  • 程序计时:sleep() perf_counter()

时间获取

时间获取函数描述
time()获取当前时间戳(1970年到现在以秒为单位的数值),即计算机内部时间值,浮点数。
ctime()获取当前时间并以易读的方式表示,返回字符串
gmtime()获取当前时间,表示为计算机可处理的时间格式

时间格式化

时间格式化将时间以合理的方式展示出来。

  • 格式化:类似字符串格式化,需要有展示模板

  • 展示模板有特定的格式化控制符组成

时间格式化函数描述
strftime(tpl,ts)将计算机时间转化字符串可读时间。tpl是格式化模板字符串,用来定义输出效果;ts是计算机内部时间类型变量。import time;t = time.gmtime();time.strftime(“%Y-%m-%d %H:%M:%S” , t)
strptime(str,tpl)将字符串时间转化为计算机可读时间,与striptime互逆。str是字符串形式的时间值;tpl是格式化模板字符串,用来定义输入效果。

格式化字符串

格式化字符串日期/时间说明值范围和实例
%Y年份0000~9999,如1900
%m月份01~12,如10
%B月份名称January~December,如April
%b月份名称缩写January~Dec,如Apr
%d日期01~31,如25
%A星期Monday~Sunday,如Wednesday
%a星期缩写Mon~Sun,如Wed
%H小时(24h制)00~23,如12
%I小时(12h制)01~12,如7
%p上/下午AM,PM,如PM
%M分钟00~59,如26
%S00~59,如26

程序计时

程序计时指测量起始动作所经历时间的过程,应用广泛。

包括测量时间函数perf_counter(),产生时间函数sleep()

程序计时函数描述
perf_counter()返回一个CPU级别的精确时间计数值,单位为秒。由于这个计数值起点不确定,连续调用差值才有意义
sleep(s)s拟休眠时间,单位是秒,可以使浮点数。如import time;def wait():time.sleep(3.3);wait()#程序将等待3.3秒后再退出

文本进度条实例

文本进度条

  • 采用字符串方式打印可以动态变化的文本进度条

  • 进度条需要能在一行中逐渐变化

如何获得文本进度条的变化时间?

  • 采用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("------执行结束------")

单行动态刷新

刷新的本质:用后打印的字符覆盖之前的字符

不能换行:print()需要被控制,使用end=“ ”

要能回退:打印后光标退回到之前的位置,使用\r——刷新的关键

#TextProBarV2.py
import time
for i in range(101):
                print("\r{:3}%".format(i),end="")
                time.sleep(0.1)
#IDLE是开发环境,不是程序运行环境,\r被屏蔽
#TextProBarV3.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}%[{}->{}]".format(c,a,b,dur),end='')
                time.sleep(0.1)
print("\n"+"执行结束".center(scale//2, "-"))

进度条拓展

  • 在任何运行时间较长的程序中增加进度条

  • 在任何希望提高用户体验的应用中增加进度条

  • 进度条是人机交互的纽带之一

文本进度条的不同设计函数:

在这里插入图片描述

开始展示慢些,后续增长快些更能增加用户体验

练习题

2018北理工python语言程序设计课后编程及测试解答

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值