上一节课我们学习了如何自定义模块,大家可以定义自己的模块,但是项目中通常不允许我们自己造轮子,所以本节课主要学习Python的标准库,学习使用别人的轮子,由于标准库内容较多,所以我们分开两次课程来学习学完此次课程,我能做什么?
学完此次课程,我们将对Python常用的标准库有一个大致的了解,什么时候应该用哪些模块,该用什么函数也会有一定的认识,当然想要在项目实战中遇到问题准确的想到使用什么库,什么函数还需要历练,大家加油!学习此次课程,需要多久?
10-15分钟课程内容导入标准库导入标准库的语法和我们上一课讲的导入自定义模块一样。
![](http://ldjg88.com/zb_users/upload/2024/06/20240620082909171884334945918.webp)
命令行中 输入 import+包名,如果没有任何错误信息表示导入成功。
![](http://ldjg88.com/zb_users/upload/2024/06/20240620082910171884335098591.webp)
如果某个包不存在,会提示ModuleNotFoundError 错误信息。dir() 查看某个包下的所有内容。
![](http://ldjg88.com/zb_users/upload/2024/06/20240620082911171884335137121.webp)
__all__变量作用:定义了模块所包含的公有接口,当使用批量导入的时候,Python会导入__all__列表中的内容。
![](http://ldjg88.com/zb_users/upload/2024/06/20240620082911171884335151026.webp)
copy模块中__all__是这样被定义的__all__ = [Error, copy, deepcopy]所以我们使用 form copy import * 的时候,会导入__all__列表的内容help() 查看帮助信息
![](http://ldjg88.com/zb_users/upload/2024/06/20240620082911171884335137953.png)
大家可以比较一下文档字符串和help函数,建议使用help()返回详细的函数信息。查看Python源代码如果我们想了解一下copy函数的源代码可以使用__file__查看一下源码路径。
![](http://ldjg88.com/zb_users/upload/2024/06/20240620082912171884335255406.webp)
我们打开 /usr/lib/python3.6 文件夹看一下,所有的模块
![](http://ldjg88.com/zb_users/upload/2024/06/20240620082912171884335295276.webp)
有兴趣的朋友可以仔细读一下源码,看一下实现思路想提高这一步骤也是必不可少的由于基础课程,我们就不详细说了sys 模块常用方法argv属性 返回列表,第一个元素为文件名,后面是命令行参数,每个空格代表一个元素。
代码:
![](http://ldjg88.com/zb_users/upload/2024/06/20240620082912171884335251392.png)
结果:
![](http://ldjg88.com/zb_users/upload/2024/06/20240620082912171884335231814.webp)
一张图看明白传参和接收结果。exit([arg]) 方法,退出当前程序,可选参数为退出时返回参数。代码:
![](http://ldjg88.com/zb_users/upload/2024/06/20240620082913171884335396108.webp)
结果:
![](http://ldjg88.com/zb_users/upload/2024/06/20240620082913171884335319026.webp)
platform 属性,用于获取项目运行平台代码:
![](http://ldjg88.com/zb_users/upload/2024/06/20240620082913171884335387291.webp)
结果:
![](http://ldjg88.com/zb_users/upload/2024/06/20240620082914171884335429181.webp)
os 模块用于访问操作系统的功能。sep 属性,返回当前系统的分隔路径的分隔符。代码:
![](http://ldjg88.com/zb_users/upload/2024/06/20240620082914171884335438257.webp)
结果:
![](http://ldjg88.com/zb_users/upload/2024/06/20240620082914171884335447380.webp)
Linux下路径分隔符 / Windows下路径分隔符 / 都可以开发中,分隔符应该通过系统常量来获取,尽量不要HardCode想偷懒 / 是比较安全的set() 集合,由序列或者其他可迭代对象构成,无序,值不能重复。
![](http://ldjg88.com/zb_users/upload/2024/06/20240620082915171884335567989.webp)
输出结果为把序列去重后的字典:
![](http://ldjg88.com/zb_users/upload/2024/06/20240620082915171884335576785.webp)
union() 或者 | 寻找两个集合的并集代码:
![](http://ldjg88.com/zb_users/upload/2024/06/20240620082915171884335546546.webp)
运行结果:通过两种方式,把两个集合合并为一个集合。intersection() 或者 & , 取两个集合的交集
![](http://ldjg88.com/zb_users/upload/2024/06/20240620082916171884335644568.png)
运行结果:
![](http://ldjg88.com/zb_users/upload/2024/06/20240620082916171884335628513.webp)
issubset() 或者 <= , 判断集合a 是否属于集合b
![](http://ldjg88.com/zb_users/upload/2024/06/20240620082916171884335675944.webp)
issuperset() 或者 >= ,判断集合a 是不是集合b的父集
运行结果:
-号, 返回 a中存在,b中不存在的集合
运行结果:
add() 集合中添加元素
运行结果,成功的把元素3添加到集合a中:
-remove() 从集合中移除某个元素
运行结果:
小结由于标准库比较多,每个库又有很多常用的方法,学起来比较难以记忆,所以大家应该多敲一下代码,走马观花看完一遍很难记住,多多练习,用的时候才会知道哪个函数应该什么时候使用,然后再去查看相应的手册接下来学习什么?。
接下来我们继续学习,标准库的第二讲。关注公众号,回复 Python基础 下载全部代码+PDF版电子书
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。