【本文结构】
- 题目信息:来源、地址、序号、描述
- 题目答案:简要分析,程序代码(测试运行通过,含注释),运行结果
- 霍霍磨刀:解答这道题目之前应掌握的知识基础
- 解析过程:题目类型,分析以及实践过程
- 斩获成果:通过解答这道题目之后的知识提升
- 下一题预告:来源、地址、序号、描述
【题目信息】
来源:菜鸟教程
地址:https://dwz.cn/Ol2QUMGD
序号:10
描述:暂停一秒输出,并格式化当前时间。
【题目答案】
程序分析:使用 time 模块的 sleep() 函数,strftime函数,localtime函数,time函数
程序代码:
import time # 导入时间库
print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))) # 格式化输出当前时间
time.sleep(1) # 暂停一秒
print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))) # 格式化输出当前时间
运行结果:
2019-08-07 15:06:08
2019-08-07 15:06:09
【霍霍磨刀】
在解答这道题目之前,你首先应知道以下两点
- 什么是time库
- 如何查看time库中的函数和函数的使用方式
- 什么是元组
【解析过程】
题型:函数语法题
本题分为两个内容,一个是暂停一秒,一个是格式化当前时间
暂停一秒请看上一篇随笔:Python解题记录第9题
格式化时间分为几个步骤
第一步:导入time库,这样才能调用该库内的函数
import time # 导入时间库
第二步:获取时间戳
xtime=time.time() # 获取时间戳
print(type(xtime)) # 打印时间戳类型
print(xtime) # 输出时间戳
运行结果
<class 'float'>
1565164330.1797116
第三步:将获取到的时间戳转换为本地时间
localtime = time.localtime(xtime) # 格式化时间戳为本地的时间
print(type(localtime)) # 打印本地时间类型
print(localtime) # 打印本地时间
运行结果
<class 'time.struct_time'>
time.struct_time(tm_year=2019, tm_mon=8, tm_mday=7, tm_hour=15, tm_min=52, tm_sec=10, tm_wday=2, tm_yday=219, tm_isdst=0)
第四步:提取本地时间并输出
根据第三步的运行结果可以看到,这是一个元组类型,如果获取年份,可以采用localtime[0],因此,格式化时间可以采用逐个提取,并进行输出,如下所示
year=localtime[0] # 获取年份
month=localtime[1] # 获取月份
day=localtime[2] # 获取日期
print("{}年{}月{}日".format(year,month,day)) # 输出格式化之后的时间
第五步:格式化时间并输出
但在time库中,还有一个函数strftime,它可以直接格式化时间,而不需要我们逐个去提取,代码如下:
print(time.strftime('%Y-%m-%d %H:%M:%S', localtime)) # 格式化输出当前时间
print(time.strftime('%Y/%m/%d %H:%M:%S', localtime)) # 格式化输出当前时间
关于该函数的部分说明
strftime(format[, tuple]) -> string
将指定的struct_time(默认为当前时间,元组格式),根据指定的格式化字符串输出
python中时间日期格式化符号:
%y 两位数的年份表示(00-99)
%Y 四位数的年份表示(000-9999)
%m 月份(01-12)
%d 月内中的一天(0-31)
%H 24小时制小时数(0-23)
%I 12小时制小时数(01-12)
%M 分钟数(00=59)
%S 秒(00-59)
抛出问题:
- 三天前是几月几日
- 跟time模块类似的库还有哪些
【斩获成果】
通过本题的解答,我们了解了time 模块的 sleep() 函数,strftime函数,localtime函数,time函数,并学会了格式化当天日期
但本题解答中,没有展示如何在何种场合下应该用到time库中的格式化,我能想到的就是在一个界面中输出日期时间,比如在物联网中,在展示屏中展示当前的时间,记得在杭州东站卫生间门口看到过。
关于这个时间格式化,我们可以用到什么地方呢?
菜鸟教程:Python 日期和时间
网址:https://www.runoob.com/python/python-date-time.html
【下一题预告】
在读书告一段落之后,开始解题
10天解了10题,难度不大,但思考有点多
需要安静一下,需要回过头来看看自己的解题记录
以旁观者的视角再回看一遍,并顺便整理一下解题的格式
以教师的视角看看自己解的题,看看能否用在下学期的教学上
写点随笔,记录一下这段简短的经历