1.时间日历
Python 程序能用很多方式处理日期和时间,转换日期格式是一个常见的功能。
常用操作
time模块
提供了处理时间和表示之间转换的功能
获取当前时间戳
概念
从0时区的1970年1月1日0时0分0秒, 到所给定日期时间的秒数
浮点数
获取方式
import time
time.time()
获取时间元组
概念
很多python时间函数将时间处理为9个数字的元组
图解
获取方式
import time
time.localtime([seconds])
seconds
可选的时间戳
默认当前时间戳
获取格式化的时间
秒 -> 可读时间
import time
time.ctime([seconds])
seconds
可选的时间戳
默认当前时间戳
时间元组 -> 可读时间
import time
time.asctime([p_tuple])
p_tuple
可选的时间元组
默认当前时间元组
格式化日期字符串 <--> 时间戳
时间元组 -> 格式化日期
time.strftime(格式字符串, 时间元组)
例如
time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
2017-09-02 17:21:00
格式化日期 -> 时间元组
time.strptime(日期字符串, 格式符字符串)
time.mktime(时间元组)
例如
time.mktime(time.strptime("2017-09-02 17:21:00", "%Y-%m-%d %H:%M:%S"))
1504344060.0
常用格式符
%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)
%a 本地简化星期名称
%A 本地完整星期名称
%b 本地简化的月份名称
%B 本地完整的月份名称
%c 本地相应的日期表示和时间表示
%j 年内的一天(001-366)
%p 本地A.M.或P.M.的等价符
%U 一年中的星期数(00-53)星期天为星期的开始
%w 星期(0-6),星期天为星期的开始
%W 一年中的星期数(00-53)星期一为星期的开始
%x 本地相应的日期表示
%X 本地相应的时间表示
%Z 当前时区的名称
%% %号本身
获取当前CPU时间
time.clock( )
浮点数的秒数
可用来统计一段程序代码的执行耗时
休眠n秒
推迟线程的执行, 可简单理解为, 让程序暂停
time.sleep(secs)
calendar模块
提供与日历相关的功能,比如: 为给定的月份或年份打印文本日历的功能
获取某月日历
import calendar
calendar.month(2017, 9)
datetime模块
Python处理日期和时间的标准库
这个模块里面有datetime类,此外常用的还有date类,以及time类
可以做一些计算之类的操作
获取当天日期
import datetime
print(datetime.datetime.now())
print(datetime.datetime.today())
单独获取当前的年月日时分秒
datetime对象里面的一些属性
year
month
day
hour
minute
second
计算n天之后的日期
import datetime
result = datetime.datetime.today() + datetime.timedelta(days = 7)
print(result)
获取两个日期时间的时间差
import datetime
first = datetime.datetime(2017, 9, 1, 12, 0, 0)
second = datetime.datetime(2017, 9, 2, 12, 0, 0)
result = second - first
print(result.total_seconds())
2.访问集合的方式-迭代器
概念
迭代
是访问集合元素的一种方式
按照某种顺序逐个访问集合中的每一项
可迭代对象
能够被迭代的对象, 称为可迭代对象
判定依据
能作用于for in
判定方法
import collections
isinstance(obj, collections.Iterable)
迭代器
是可以记录遍历位置的对象
从第一个元素开始, 往后通过next()函数, 进行遍历
只能往后, 不能往前
判定依据
能作用于next()函数
判定方法
import collections
isinstance(obj, collections.Iterator)
注意
迭代器也是可迭代对象, 所以也可以作用于for in
为什么会产生迭代器?
1. 仅仅在迭代到某个元素时才处理该元素
在此之前, 元素可以不存在
在此之后, 元素可以被销毁
特别适合用于遍历一些巨大的或是无限的集合
例如 "菲波那切数列"
2. 提供了一个统一的访问集合的接口
可以把所有的可迭代对象, 转换成迭代器进行使用
iter(Iterable)
iter(str)
iter(list)
iter(tuple)
iter(dict)
...
迭代器简单使用
使用next()函数, 从迭代器中取出下一个对象, 从第1个元素开始
因为迭代器比较常用, 所以在Python中, 可以直接作用于for in
内部会自动调用迭代器对象的next()
会自动处理迭代完毕的错误
注意事项
如果取出完毕,再继续取, 则会报错
StopIteration
迭代器一般不能多次迭代
学习地址:
撩课-Python大数据+人工智能1
撩课-Python大数据+人工智能2
撩课-Python大数据+人工智能3
撩课-Python大数据+人工智能4
撩课-Python大数据+人工智能5
撩课-Python大数据+人工智能6
撩课-Python-GUI编程-PyQt5
网友评论