目录
1、 Python中模块的导入
2、数学库-math
3、时间库-time
4、随机数库-random
5、集合扩展库-collections
Python中的模块其实就是一个python文件,该文件中可以定义多个类、函数、变量等。模块名称就是不包含后缀的文件名。通常同一文件内的代码具有高内聚特点,不同文件之间的代码具有低耦合特点,不同模块间可相互调用,从而实现代码的复用。
1、 Python中模块的导入
不同模块间相互调用的前提是要先导入相关内容,此时需借助import关键字,语法如下:
- import 模块名:导入整个模块,此时可根据模块名.内容进行访问。
- import 模块名 as 别名:导入整个模块,并给模块取个别名,可通过别名.内容进行访问。
- from 模块名 import 函数或类:从模块中导入某一部分内容,此时可直接访问内容。
使用import语句导入模块时,将会按照 sys.path 变量的值搜索文件,如果没找到,则程序报错。可通过sys.path查看搜索目录,通常包含当前目录、Python安装目录等,搜索顺序按照目录在列表中的顺序(一般来说当前目录优先级最高)。
如果需要访问的模块不在默认的搜索目录中,则需要手动将其添加到搜索目录中去。如果在多个模块中包含相同的内容,此时访问时可用模块名.内容进行区分,否则根据导入的顺序,取最后导入的。
2、数学库-math
math库中定义了一些常见的数学常量和数学计算公式,例如自然常数e,圆周率pi,正弦函数、对数函数、距离函数、平方根函数等。
3、时间库-time
time 模块主要提供各种关于日期、时间的类和函数。Python中时间通常有三种表现形式:结构化时间、时间戳、字符串时间。这三种形式之间通过一定函数可相互转换。
- 结构化时间:用一个元组表示,元组中包含9部分内容,年份、月份(1-12)、日期(1-31)、小时(0-23)、分钟(0-59)、秒数(0-59)、星期(0-6,星期一为0)、一年中的天数(1-366)、是否夏令时(-1, 0,1)
- 字符串时间:按照用户自定义的时间格式显示;
- 时间戳:从1970年1月1日0时0分0秒开始到现在的秒数,是一个浮点数。
以字符串形式显示时间或者将字符串解析为时间元组时,需要通过一些特殊的字符进行控制。这些特殊字符作用如下,注意大小写。其他内容必须原样输入,既不能省略,也不能修改,否则解析出错。
4、随机数库-random
实际应用中,经常需要从一组数据中随机抽样,或者将一组数据随机打乱顺序,从而使得实验结果更具说服性,此时需要借助于random库,random库中主要的方法及其含义如下。
5、集合扩展库-collections
collections 模块扩展了Python中内嵌的容器:dict、list、set和 tuple等,提供了一些具有特殊功能的子类。 例如:Counter、defaultdict、OrderedDict 等。
defaultdict 是字典 dict 的子类,支持所有的字典操作,用于给所有的关键字赋默认值,此时访问字典中不存在的键时,返回默认值,而不会直接报错。
Counter是字典 dict 的子类,支持所有的字典操作,用于对可迭代对象中的元素计数。它是一个键值对的集合,键为元素,值为该对象出现的次数。
Counter类中常见的方法及其作用如下:
- most_common(n):返回出现次数最多的前n个元素,如果n省略,则返回所有元素,按照出现的次序降序排列。返回结果为一个列表,列表中每个元素为元组,由键和对应的值构成;
- elements():返回一个迭代器,每个元素将出现指定次数。元素按首次出现的顺序返回。如果一个元素的计数值小于1,则会忽略;
- subtract(可迭代对象):从已有对象中减去相应数量的元素,最终结果中有些元素出现的数量可能为负数。
- update(可迭代对象):在已有对象基础上加上相应数量的元素
此外,Counter对象还支持加法(+)、减法(-)、并集(|)、交集(&)等操作。
小小练习题