datetime时间模块
datetime类
- 时间高级类
- 类方法,用类调用的方法,由类方法获得一个时间对象
- now(tz=None)返回当前时间的datetime对象,时间到微秒,如果tz为None,返回当前时区的不带时区信息的时间
- utcnow()不带时区的0时区时间
- fromtimestamp(timestamp,tz=None)从一个时间戳返回一个datetime对象
- 时间对象方法
- timestamp()返回一个到微秒的时间戳
- 时间戳:格林威治时间1970年1月1日0点到现在的秒数
- 构造方法datetime.datetime(2016, 12, 6, 16, 29, 43, 79043)
- year、month、day、hour、minute、second、microsecond,取datetime对象的年月日时分秒及微秒
内建函数
- 标识id()
- 返回对象的唯一标识,CPython返回内存地址
- dir()
- help()
- 类型 type()
- 返回对象类型
- 类型转换
- float() int() bin() hex() oct() tuple() dict() set() complex() bytes() bytearray()
- 输入input()
- 接收用户输入,返回一个字符串
- 打印 print(*objects, sep = “”, end = “\n”, file = sys.stdout, flush = False)
- 打印输出,默认使用空格分割、换行结尾,输出到控制台
- 对象长度len()
- 返回一个集合类型的元素个数
- isinstance(obj, class_or_tuple)
- 判断对象obj是否属于某种类型或元组中列出来的某种类型
- isinstance(True, int)
- issubclass(cls, class_or_tuple)
- 判断类型cls是否是某种类型的子类或者元组中列出来的某个类型的子类
- issubclass(bool, int) issubclass(bool, (str, int))
- 绝对值abs(x) x为数值
- 最大值max(x) 最小值min(x)
- 参数为可迭代对象:返回可迭代对象中的max_or_min
- 多个参数:返回其中max_or_min
- sum(iterable, start=0, /) strat:起始数 start += x
- 可迭代对象的所有数值元素求和
- sum(range(1,100,2))
- round(x) 四舍六入五取偶
- pow(x,y) 等价 x**y
- range
- 计数器,range(stop)从0开始到stop-1可迭代对象
- range(start, stop, step) 从0开始到step-1结束,步长为step的可迭代对象
- divmod(x, y) 等价 tuple(x//y, x%y)
- chr(i) 给一个一定范围的整数返回对应的字符
- chr(97)
- ord(c) 返回字符对应的整数
- ord(”a”)
- eval(expression[, globals[, locals]]) 将字符串表达式转换并返回成表达式的值。
- expression -- 表达式。
- globals -- 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。
- locals -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。
- eval('2 + 2') # 4
sorted(iterable[, key][, reverse])
- iterable -- 可迭代对象,并立即返回一个新列表
- key -- 自定义排序规则,但只是把转换后的结果用来大小比较,不会影响到结果输出,
- key后面参数为函数名,可以使内建函数,也可以是def自定义函数或lambda函数(看函数(一)中return返回值以及lambda中例子)
- reverse -- 排序规则,True为降序 ,False 升序(默认)
- reversed(seq)
- seq -- 要转换的序列,可以是 tuple, string, list 或 range。
- 返回一个反转的迭代器,惰性
倒着遍历索引,高效
- enumerate(sequence, [start=0])
- sequence -- 一个序列、迭代器或其他支持迭代对象。
- start -- 起始标记下标值;迭代是从头开始的
- 惰性,迭代器
- iter(object[, sentinel]) 生成迭代器
- object -- 可迭代对象。
- sentinel -- 如果传递了第二个参数,则参数 object 必须是一个可调用的对象(如,函数),此时,iter 创建了一个迭代器对象,每次调用这个迭代器对象的__next__()方法时,都会调用 object。
- zip()
- 将多个可迭代对象合并在一起,返回一个迭代器
- 每次从不同对象中取到的元素合并成一个元组
可迭代对象(iterable)
- 能够通过迭代一次次返回不同的元素的对象。
- 所谓相同,不是指值是否相同,而是元素在容器中是否是同一个,例如列表中值可以重复的,[1, 1],虽然这个列表有2个元素,值一样,但是两个1是不同的元素
- 可以迭代,但是未必有序,未必可索引
- 可迭代对象有:list、tuple、string、bytes、bytearray、range、set、dict、生成器、迭代器等等
- 可以使用成员操作符in、not in
- in本质上对于线性数据结构就是在遍历对象,效率为O(n)
- in对于字典和集合来讲是直接求哈希值,效率为O(1)
迭代器(iterator)
- 特殊的对象,一定是可迭代对象,具备可迭代对象的特征
- 通过iter方法把一个可迭代对象封装成迭代器
- 通过next方案,迭代迭代器对象
- 迭代器对象只能从头到尾迭代一遍
- 生成器对象,就是迭代器对象,它是特殊的迭代器对象