Python初学5——time库简介与使用

目录

一、time库基本介绍

1.1 time库功能、引用使用格式

2.2 time库包含三类函数( 时间获取、时间格式化输出、程序计时 )

二、时间获取( time()、ctime()、gmtime() )

三、时间格式化( strftime()、strptime() )

四、程序计时( sleep()、perf_counter() )

五、“文本进度条”实例

5.1 简单进度条

5.2 单行刷新


一、time库基本介绍

1.1 time库功能、引用使用格式

time库是Python中处理时间的标准库之一,有如下的基本功能:

  • 计算机时间的表达
  • 获取系统时间并格式化输出
  • 系统级精确计时,可用于程序分析

time库引用/使用的三种格式(库引用方法说明参考“Python初学2”第一章):

1. 法一(基本用法)

import time                                        # 关键字import用于库引用

time.<函数名>(<函数参数>)              # 使用:库名.函数名()

2. 法二(不常用用法)

from time import *

<函数名>(<函数参数>)

3. 法三(推荐用法)

import time as <库别名>

<库别名>.<函数名>(<函数参数>)

2.2 time库包含三类函数( 时间获取、时间格式化输出、程序计时 )

  • 时间获取类:time()、ctime()、gmtime()
  • 时间格式化输出类:strftime()、strptime()
  • 程序计时类:sleep()、perf_counter()

二、时间获取( time()、ctime()、gmtime() )

表2-1 time库中3个时间获取类函数
时间获取类说明
time()

功能:获取当前时间戳

返回值:浮点数

说明:1970年1月1日0:00至现在的时间,单位秒。使用示例如图2-1所示

 

图2-1
ctime()

功能:获取当前时间

返回值:字符串

说明:以人类易读的方式显示。使用示例如图2-2所示

图2-2
gmtime()

功能:获取当前时间

返回值:计算机内部时间变量类型

说明:表示为计算机可处理的时间格式。使用示例如图2-3所示

图2-3

三、时间格式化( strftime()、strptime() )

时间格式化似于字符串格式化(字符串格式化说明参考“Python初学4”第五章),是将时间以合理的方式展示出来的方法,这就需要展示模板(由特定的格式化控制符组成,见表3-2)。

表3-1 time库中2个时间格式化输出类函数
时间格式化输出类说明
strftime(tpl, ts)

功能:将计算机内部时间变量转换成人类易读的时间形式

返回值:字符串

参数:tpl——格式化模板字符串,定义输出效果

           ts——计算机内部时间变量类型

说明:使用示例如图3-1所示

图3-1
strptime(str, tpl)

功能:将时间字符串转换成计算机内部时间变量

返回值:计算机内部时间变量类型

参数:str——字符串形式的时间值

           tpl——格式化模板字符串,定义输入效果

说明:使用示例如图3-2所示

图3-2

 

表3-2 时间格式化模板字符串
格式化字符串说明可以显示值的范围
%Y年份数字0000 ~ 9999
%m月份数字01、02、03、04、05、06、07、08、09、10、11、12
%B月份名称January、February、March、April、May、June、July、August、September、October、November、December
%b月份名称缩写Jan、Feb、Mar、Apr、May、Jun、Jul、Aug、Sep、Oct、Nov、Dec
%d日期数字01 ~ 31
%A星期名称Monday、Tuesday、Wednesday、Thursday、Friday、Saturday、Sunday
%a星期名称缩写Mon、Tue、Wed、Thu、Fri、Sat、Sun
%H小时数字(24制)00 ~ 23
%I小时数字(12制)01 ~ 12
%p上/下午AM、PM
%M分钟数字00 ~ 59
%S秒数字00 ~ 59

四、程序计时( sleep()、perf_counter() )

表4-1 time库中2个程序计时类函数
程序计时类说明
perf_counter()

功能:精确计时

返回值:浮点数

说明:CPU级别的精确时间计数值,单位秒。由于计数起点未知,故连续调用做差值才有意义。使用示例如图4-1所示

图4-1
sleep(s)

功能:延时s秒时间

返回值:无

参数:s——延时时间,整数浮点数都可以,单位秒

说明:让程序休眠指定的时间,然后继续运行

五、“文本进度条”实例

5.1 简单进度条

问题分析:

  • 采用字符串方式打印可以动态变化的文本进度条
  • 采用 sleep() 函数模拟进度的停顿感

代码示例:

import time          # 引用time库
scale = 30           # 定义文本进度条的总长度
print("--------执行开始--------")
for i in range(scale + 1):  # 定义for循环,i从0到scale
    a = "*" * i;            # 将字符串*复制i次,用于显示已加载完的进度条
    b = "." * (scale - i)   # 将字符串.复制(scale - i)次,用于显示还未加载的进度条
    c = (i / scale) * 100   # 计算进度条的进度百分比
    print("{2:>3.0f}%[{0}->{1}]".format(a, b, c))   # 打印进度条
    time.sleep(0.1)         # 进度条以0.1秒为单位进行更新
print("--------执行结束--------")

数值操作符 / 和 * 参考“Python初学3”第二章。字符串操作符 * 参考“Python初学4”第二章。.format()格式化输出方法参考“Python初学4”第五章。

程序运行结果:

5.2 单行刷新

问题分析:

  • 在上面效果的基础上,进度条需要能在一行中刷新变化(后打印的字符覆盖之前的字符)
  • print()函数中使用字符 \r ,使光标回退到行首;使用 end="" 使打印完后的光标不自动换行。举例如下:

print(“\r{}”.format(a), end="")

# 字符串 \r 作用:打印前光标先置到行首

# end="" 作用:打印完之后,print() 函数不自动换行,即光标留在本行行尾

字符串的转义字符 \r \n \b 参考“Python初学4”第一章1.1节。

代码示例:

import time
scale = 30
print("执行开始".center(scale // 2, "-"))   # 使用字符串 center() 处理方法,使字符串居中显示
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{2:>3.0f}% [{0}->{1}] {3:^.2f}s".format(a, b, c, dur), end="")   # \r 使打印前光标回到行首,结尾处的 end="" 使打印完光标不自动换行
    time.sleep(0.1)
print("\n" + "执行结束".center(scale // 2, "-"))

字符串处理方法 str.center(width[, fillchar]) 参考“Python初学4”第四章。

程序运行结果:

  • 7
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

觅道無涯-千知

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

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

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

打赏作者

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

抵扣说明:

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

余额充值