知识体系
第16关:模块
第16关:模块.jpeg
知识点
什么是模块?
模块是最高级别的程序组织单元
可以直接存放变量,函数,还能存放类
定义变量需要用赋值语句,封装函数需要用def语句,封装类需要用class语句,但封装模块不需要任何语句。每一份单独的Python代码文件(后缀名是.py的文件)就是一个单独的模块
使用模块的两种方式
一种是自己建立模块并使用
如何建立模块?
在主程序的py文件中,使用import语句导入其他py文件
模块相关的3个常用语句
1、import语句
我们使用import语句导入一个模块,最主要的目的并不是运行模块中的执行语句,而是为了利用模块中已经封装好的变量、函数、类。
当我们导入模块后,要使用模块中的变量、函数、类,需要在使用时加上[模块.]的格式。实例化完成后,则不再需要“模块.”
import…as…
import语句还有一种用法是import…as…。比如我们觉得import story太长,就可以用import story as s语句,意思是为“story”取个别名为“s”
当需要同时导入多个模块时,可以用逗号隔开
比如import a,b,c可以同时导入“a.py,b.py,c.py”三个文件
2、from … import … 语句
可以让你从模块中导入一个指定的部分到当前模块。
基本格式:
from(模块名)import(制定模块中的变量名/函数名/类名)
作用和效果:
-导入模块中的指定部分(变量名/函数名/类名)
-导入后的指定部分可以直接使用,无需加上“模块.”的前缀。
当需要从模块中同时导入多个指定内容,也可以用逗号隔开
写成from xx模块 import a,b,c的形式
当需要从模块中指定所有内容直接使用时,可以写成【from xx模块 import 】的形式。代表“模块中所有的变量、函数、类”
特别注意:没有被写在import后面的内容,将不会被导入
3、if name == 'main'语句
当我们有了一大堆py文件组成一个程序的时候,为了【指明】某个py文件是程序的运行入口,我们可以在该py文件中写出这样的代码:
【文件:xx.py】
代码块 ①……
if name == 'main':
代码块 ②……
这段代码的意思是:正常直接使用时,代码块2是被运行的,但当作为整体的一部分被别人导入时就不运行了(被扣出去了)
另一种是使用他人共享的模块
python自带的内置模块,可随时调用。比如,time模块,random模块。除此之外,还可以到python资源库中下载安装相应的模块。
下载安装的方式是:
打开终端,Windows用户输入pip install + 模块名;苹果电脑输入:pip3 install + 模块名,点击enter即可。
如何高效地学会使用一个模块
比较小的模块(比如random模块)可以通过自学的方式,大型模块例如数据分析需要用到pandas和NumPy模块,网页开发要用到Django模块等等,最好还是在课程上系统学习,避免散乱的学习形不成知识体系。
学习模块的核心是搞清楚模块的功能。也就是模块中的函数和类方法有什么作用,以及具体使用案例长什么样。
-可以直接阅读官方文档:https://docs.python.org/3.6/library/random.html
-也可以直接百度搜索
搜到教程后,我们重点关注的是模块中的函数和类方法有什么作用,然后把使用案例做成笔记。
-还可以使用dir()函数查看一个模块,看看它里面有什么变量、函数、类、类方法。
作用:就像是查户口一样,可以把模块中的函数(函数和类方法)一览无余地暴露出来。对于查到的结果“xx”结构的,它们是系统相关的函数,我们不用理会,直接看全英文的函数名即可。这样查询的好处是便于我们继续搜索完成自学。
甚至不是模块,我们也可以用这种方式自学:dir(x),可以查询到x相关的函数,x可以是模块,也可以是任意一种对象。
案例:自学CSV模块
可以把它理解成“简易版excel”
举例:
读取CSV:
with open('test.csv', newline = '', encoding = 'utf-8') as f:
reader = csv.reader(f) #使用csv的reader()方法,创建一个reader对象
for row in reader: #遍历reader对象的每一行
print(row)
#参数encoding = 'utf-8'防止出现乱码
写入CSV:
with open('test.csv','a', newline='',encoding='utf-8') as f:
writer = csv.writer(f) #使用csv的writer()方法,创建一个writer对象
writer.writerow(['4', '猫砂', '25', '1022', '886'])
这一关里的特殊知识点
range()函数的三个参数
课程中遇到的问题:
for t in range(task_time,0,-1):
在百度上查询后,了解到这里最后的一个参数的意思是:每一次减去1,一直减到0为止
举例说明:
range(5,-1,-1)的意思是:使用range产生一个列表,从5开始到-1之前结束。range的用法是range(开始,结束,步长),因为我们是要从大到小,所以我们用-1表示步长为-1,意味着每次-1,如果是-2,那就是每次-2
网友评论