type
status
date
slug
summary
tags
category
icon
password

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方案,迭代迭代器对象
  • 迭代器对象只能从头到尾迭代一遍
  • 生成器对象,就是迭代器对象,它是特殊的迭代器对象