⭐本专栏旨在对Python的基础语法进行详解,精炼地总结语法中的重点,详解难点,面向零基础及入门的学习者,通过专栏的学习可以熟练掌握python编程,同时为后续的数据分析,机器学习及深度学习的代码能力打下坚实的基础。
????本文已收录于Python基础系列专栏: Python基础系列教程 欢迎订阅,持续更新。
Python自身提供了比较丰富的生态,拿来即用,可极大的提高开发效率
9.1 time库
Python处理时间的标准库
9.1.1 获取现在时间
(1)time.localtime() 本地时间
(2)time.gmtime() UTC世界统一时间
北京时间比时间统一时间UTC早8个小时
9.1.2 时间戳与计时器
(1)time.time() 返回自纪元以来的秒数,记录sleep
(2)time.perf_counter() 随意选取一个时间点,记录现在时间到该时间点的间隔秒数,记录sleep
(3)time.process_time() 随意选取一个时间点,记录现在时间到该时间点的间隔秒数,不记录sleep
perf_counter()精度较time()更高一些
9.1.3 格式化输出时间
(1)time.strftime 自定义格式化输出
9.1.4 睡觉
(1)time.sleep()
9.2 random库
随机数在计算机应用中十分常见
Python通过random库提供各种伪随机数
基本可以用于除加密解密算法外的大多数工程应用
9.2.1 随机种子——seed(a=None)
(1)相同种子会产生相同的随机数
(2)如果不设置随机种子,以系统当前时间为默认值
9.2.2 产生随机整数
(1)randint(a, b)——产生[a, b]之间的随机整数
(2)randrange(a)——产生[0, a)之间的随机整数 注意是开区间
(3)randrange(a, b, step)——产生[a, b)之间以setp为步长的随机整数
9.2.3 产生随机浮点数
(1)random()——产生[0.0, 1.0)之间的随机浮点数
(2)uniform(a, b)——产生[a, b]之间的随机浮点数
9.2.4 序列用函数
(1)choice(seq)——从序列类型中随机返回一个元素
(2)choices(seq,weights=None, k)——对序列类型进行k次重复采样,可设置权重
中间的就是权重
(3)shuffle(seq)——将序列类型中元素随机排列,返回打乱后的序列
(4)sample(pop, k)——从pop类型中随机选取k个元素,以列表类型返回
5、概率分布——以高斯分布为例
gauss(mean, std)——生产一个符合高斯分布的随机数
多生成几个
【例1】用random库实现简单的微信红包分配
【例2】生产4位由数字和英文字母构成的验证码
9.3 collections库——容器数据类型
9.3.1 namedtuple——具名元组
- 点的坐标,仅看数据,很难知道表达的是一个点的坐标
- 构建一个新的元组子类
定义方法如下:typename 是元组名字,field_names 是域名
- 可以调用属性
- 有元组的性质
- 确实是元组的子类
【例】模拟扑克牌
9.3.2 Counter——计数器工具
- 是字典的一个子类
- 最常见的统计——most_commom(n) 提供 n 个频率最高的元素和计数
- 元素展开——elements()
- 其他一些加减操作
【例】从一副牌中抽取10张,大于10的比例有多少
9.3.3 deque——双向队列
列表访问数据非常快速
插入和删除操作非常慢——通过移动元素位置来实现
特别是 insert(0, v) 和 pop(0),在列表开始进行的插入和删除操作
双向队列可以方便的在队列两边高效、快速的增加和删除元素
deque 其他用法可参考官方文档
9.4 itertools库——迭代器
9.4.1 排列组合迭代器
(1)product——笛卡尔积
(2) permutations——排列
(3)combinations——组合 其结果元素不能重复
(4)combinations_with_replacement——元素可重复组合
9.4.2 拉链
(1)zip
把相同位置上的元素组合在一起
长度不一时,执行到最短的对象处,就停止
(2)zip_longest——长拉链
长度不一时,执行到最长的对象处,就停止,缺省元素用None或指定字符替代
9.4.3 无穷迭代器
(1)count(start=0, step=1)——计数
(2)cycle(iterable)——循环
(3)repeat(object [, times])——重复
9.4.4 其他
(1)chain(iterables)——锁链
(2)enumerate(iterable, start=0)——枚举(Python内置)
(3)groupby(iterable, key=None)——分组
itertools 其他函数可参考官方文档