Python3萌新入门笔记(40)

Python3萌新入门笔记(40)这一篇教程 我们继续了解内置模块 六 collections 模块 这个模块中 我们只了解一块内容 deque 类型的使用 deque double ended queue 是双端队列 按官方文档的说法 这是一个类似列表的容器 能够在两端快速插入

大家好,我是讯享网,很高兴认识大家。

这一篇教程,我们继续了解内置模块。

六、collections模块

这个模块中,我们只了解一块内容,deque类型的使用。

deque(double ended queue)是双端队列。

按官方文档的说法,这是一个类似列表的容器,能够在两端快速插入(好爽)和弹出元素。

具体的使用方法,通过示例代码就能够直观的了解。

示例代码:

from collections import deque deq = deque((2, 3, 4, 5, 6)) # 序列转为双端 print(deq) # 显示输出结果为:deque([2, 3, 4, 5, 6]) deq.appendleft('开始') # 队列左侧添加单个元素 print(deq) # 显示输出结果为:deque(['开始', 2, 3, 4, 5, 6]) deq.append('结尾') # 队列右侧添加单个元素 print(deq) # 显示输出结果为:deque(['开始', 2, 3, 4, 5, 6, '结尾']) print(deq.pop()) # 弹出右侧最后一个元素,显示输出结果为:结尾 print(deq) # 显示输出结果为:deque(['开始', 2, 3, 4, 5, 6]) print(deq.popleft()) # 弹出左侧第一个元素,显示输出结果为:开始 print(deq) # 显示输出结果为:deque([2, 3, 4, 5, 6]) deq.rotate(2) # 所有元素循环(末尾元素移动至最左侧)向右移动2个位置 print(deq) # 显示输出结果为:deque([5, 6, 2, 3, 4]) deq.rotate(-1) # 所有元素循环(首个元素移动至最右侧)向左移动1个位置 print(deq) # 显示输出结果为:deque([6, 2, 3, 4, 5]) deq.extend([7, 8]) # 逐一读取列表元素并增加到队列右侧 print(deq) # 显示输出结果为:deque([6, 2, 3, 4, 5, 7, 8]) deq.extendleft([1, 0]) # 逐一读取列表元素并增加到队列左侧 print(deq) # 显示输出结果为:deque([0, 1, 6, 2, 3, 4, 5, 7, 8])

讯享网

除了上述的这些方法,还有一些其它比较通用的方法,例如:copy、count、remove……等等,在此不做演示。

七、time模块

在编程开发中,往往需要获取系统日期时间,或者对日期时间对象进行一些操作。

这里,我们来了解一下time模块为我们提供的功能。

示例代码:

讯享网import time print(time.time())

我们先导入time模块,然后调用time()函数,看一下获取到的内容。

获取到的内容类似:.

这是一个自1970年1月1日起到当前系统时间的秒数(小数点后方为毫秒、微秒和纳秒)。

那么,如何获取一个时间的字符串呢?

示例代码:

print(time.asctime()) # 显示输出结果类似于:Thu Oct 19 11:05:26 2017

对于国内用户来说,这个函数通常没什么卵用,我们更希望获取到具体的年、月、日、时、分、秒的数值,然后加上中文和冒号。

就像:2017年10月19日 12:01:25

是不是感觉有些熟悉?

没错,在教程《Python3萌新入门笔记(34)》中我们使用过获取时间元组的函数。

示例代码:

讯享网print(time.localtime())

运行代码,我们能够看到一个时间的元组。

类似于:time.struct_time(tm_year=2017, tm_mon=10, tm_mday=19, tm_hour=11, tm_min=10, tm_sec=9, tm_wday=3, tm_yday=292, tm_isdst=0)

在本地时间的元组中包含的元素依次为:年,月,日,时,分,秒,星期几,本年第几天,是否夏令时(1为真,0为假,-1为未知)。

这个元组中的内容,我们就能够通过元组的索引取到了。

示例代码:

print(time.localtime()[0]) # 显示输出结果为:2017

既然毫秒能够变为时间的元组,那么,时间的元组也能转换为毫秒。

示例代码:

讯享网print(time.mktime((2017, 10, 19, 12, 0, 0, 0, 0, 0))) # 显示输出结果为:.0

mktime方法需要提供9个整数参数,这些参数和localtime()方法获取到的时间元组相一致。

接下来,有一个非常重要的方法,它用于让Python解释器等待一段时间。

示例代码:

for i in range(5): print(time.time()) time.sleep(1)

运行代码,显示结果为:

.
.
.
.
.

sleep()函数能够让解释器等待指定的秒数,所以上方循环获取系统时间的代码,输出的结果都间隔1秒钟(有一些微秒级的误差)。


讯享网

另外,还有一个strptime()函数,能够将日期时间字符串转换为时间元组。

这个函数有两个参数,参数string为时间字符串,参数format是格式化字符串。

示例代码:

讯享网print(time.strptime('2017-10-19 14:01:23','%Y-%m-%d %H:%M:%S'))

运行代码,显示输出结果为:

time.struct_time(tm_year=2017, tm_mon=10, tm_mday=19, tm_hour=14, tm_min=1, tm_sec=23, tm_wday=3, tm_yday=292, tm_isdst=-1)

这里我们需要掌握的是格式化字符串中需要写的转换说明符。

  • %y:两位数的年份(00~99)
  • %Y :四位数的年份(0000~9999)
  • %m:月份(1~12)
  • %d:天数(1~31)
  • %H 24小时制小时数(0~23)
  • %I 12小时制小时数(1~12)
  • %M 分钟数(0~59)
  • %S 秒(0~61)  # 没看错,因为有闰秒和双闰秒的存在。
  • %a 本地简化英文星期名称
  • %A 本地完整英文星期名称
  • %b 本地简化英文月份名称
  • %B 本地完整英文月份名称
  • %c 标准日期时间
  • %j 年积日(1-366)
  • %p 本地AM或PM的等价显示
  • %U 年中第几周(0-53,以星期日为第一天)
  • %w 星期一(0)至星期日(6)的数值(0-6)
  • %W 年中第几周(0-53,以星期一为第一天)
  • %x 标准日期
  • %X 标准时间
  • %Z 当前时区英文名称
  • %% %号

八、datetime模块

datetime模块也是一个用于操作日期时间的模块。

这个模块中也为我们提供了一些易用的功能。

例如,模块里面的datetime类,能够创建日期时间对象,也能够获取系统当前日期时间。

示例代码:

import datetime date = datetime.datetime(2017, 10, 19) # 创建日期时间对象 print(date) # 显示输出结果为:2017-10-19 00:00:00 now = datetime.datetime.now() # 获取系统当前日期时间 print(now) # 显示输出结果类似于:2017-10-19 14:17:11. print(now.year, now.month, now.day, now.hour, now.minute, now.second, now.weekday()) # 获取年、月、日、时、分、秒和周几,显示输出结果类似于:2017 10 19 14 17 11 3

在datetime类中还有today()方法,获取的是系统当前的日期时间对象。

示例代码:

讯享网date = datetime.datetime.today() print(date) # 显示输出结果类似于:2017-10-19 16:12:53.

而且,我们还可以通过datetime类中的timetuple()方法,获取日期时间对象的元组。

print(datetime.datetime.timetuple(date))

显示输出结果类似于:time.struct_time(tm_year=2017, tm_mon=10, tm_mday=19, tm_hour=16, tm_min=17, tm_sec=6, tm_wday=3, tm_yday=292, tm_isdst=-1)

另外,datatime模块还有一个date类。

示例代码:

讯享网print(datetime.date.today()) # 显示输出结果类似于:2017-10-19

而且,在datatime模块中还有timedelta,能够对日期时间对象进行计算。

date = datetime.datetime(2017, 10, 19) # 创建日期时间对象 print(date) # 显示输出结果为:2017-10-19 00:00:00 print(date.date()) # 获取日期时间对象中的日期,显示输出结果为:2017-10-19 print(date + datetime.timedelta(days=-1)) # 日期减少1,显示输出结果为:2017-10-18 00:00:00 print(date + datetime.timedelta(days=1)) # 日期增加1,显示输出结果为:2017-10-20 00:00:00 print(date + datetime.timedelta(hours=-1)) # 小时减少1,显示输出结果为:2017-10-18 23:00:00 print(date + datetime.timedelta(minutes=-1)) # 分钟减少1,显示输出结果为:2017-10-18 23:59:00 print(date + datetime.timedelta(seconds=-1)) # 秒数减少1,显示输出结果为:2017-10-18 23:59:59

dtaetime模块的功能并不仅仅这么多,其它功能大家可以查询官方文档了解。

本节知识点:

1、双端队列

2、time模块

3、datetime模块

本节英文单词与中文释义:

1、double:双重

2、queue:队列

3、collection:收集

4、rotate:旋转

5、extend:扩展

6、struct:结构

7、strp(parse a string):解析字符串

8、delta:增量

9、sleep:睡眠

转载自:魔力 • Python » Python3萌新入门笔记(40)

小讯
上一篇 2025-03-08 23:17
下一篇 2025-01-17 08:23

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/29967.html