Python简明教程之模块篇
- 什么是模块
定义:简单的说,在python中“.py”后缀的文件即模块,每一个独立的 py 文件,实际上都是一个模块。在模块中,我们不但可以直接存放变量,还能存放函数和类。 - 自己设计模块的调用
1)import语句
如果我们要调用的 py 文件名为“mokuai”,可以采用以下方法:
(1)调用模块:import mokuai;
(2)调用模块中的变量:mokuai.变量名;
(3)调用模块重命名:import mokuai as f;
(4)多模块导入:import a,b,c(用括号隔开)。
例如下面代码:
# 【文件:mokuai.py】
sentence = '两只老虎,两只老虎,'
def run():
print('跑得快,跑得快')
class Tail:
sentence = '一只没有尾巴,一只没有耳朵'
def reading(self):
print('真奇怪,真奇怪')
# 【文件:main.py】
import mokuai
for i in range(10):
print(mokuai.sentence)
mokuai.run()
A = mokuai.Tail()
print(A.sentence)
A.reading()
print()
运行结果为:
两只老虎,两只老虎,
跑得快,跑得快
一只没有尾巴,一只没有耳朵
真奇怪,真奇怪
循环显示10次。
2)from … import … 语句
(1)定义:从模块中导入一个指定的部分到当前模块;
(2)模块调用多个指定内容:from xx模块 import a,b,c;
(3)模块调用所有指定内容:from xx模块 import *。
例如下面代码:
仍然调用mokuai.py
# 【文件:main.py】
from mokuai import Tail
print(Tail.sentence)
运行结果为:
一只没有尾巴,一只没有耳朵
3)if name == 'main’语句
定义:为了“指明”某个py文件是程序的运行入口,我们可以在该py文件中写出这样的代码:
#【xx.py】
代码块 ①……
if name == ‘main’:
代码块 ②……
当 xx.py 文件被直接运行时,代码块 ② 将被运行;当 xx.py 文件作为模块是被其他程序导入时,代码块 ② 不被运行。
- 他人设计模块的调用
1)模块的借用
(1)下载安装第三方模块文件打开电脑终端(cmd);Windows用户输入pip install + 模块名;苹果电脑输入:pip3 install + 模块名,点击enter即可。(需要预装python解释器和pip)
(2)查询内置模块地址(前提是用 Python 语言编写)
- cmd 输入 Python;
- import 模块名;
- 模块名.file( 注意连着两个下划线)
例如查找random模块:
cmd:
python
import random
random.__file__
2)如何自学模块
(1)官方文档查询https://www.python.org/;
(2)百度查询;
(3)dir() 函数:查看一个模块,看看它里面有什么变量、函数、类、类方法。例如:
import random
dir(random)
运行结果为:
['BPF', 'LOG4', 'NV_MAGICCONST', 'RECIP_BPF', 'Random', 'SG_MAGICCONST', 'SystemRandom', 'TWOPI', '_Sequence', '_Set', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_accumulate', '_acos', '_bisect', '_ceil', '_cos', '_e', '_exp', '_inst', '_log', '_os', '_pi', '_random', '_repeat', '_sha512', '_sin', '_sqrt', '_test', '_test_generator', '_urandom', '_warn', 'betavariate', 'choice', 'choices', 'expovariate', 'gammavariate', 'gauss', 'getrandbits', 'getstate', 'lognormvariate', 'normalvariate', 'paretovariate', 'randint', 'random', 'randrange', 'sample', 'seed', 'setstate', 'shuffle', 'triangular', 'uniform', 'vonmisesvariate', 'weibullvariate']
3)学习 csv 模块
新建 csv 文件:新建一个 excel 文件表格,另存为 ‘csv’ 格式(若无法查到后缀,电脑查看文件后缀不隐藏);
打开文件:with open(‘test.csv’,‘a’, newline=’’,encoding=‘utf-8’) as f:
创建实例:writer = csv.writer(x);
往列表写入内容:writer.writerow(列表)。
- 知识拓展
1)newline
newline可以取的值有None, \n, \r, ‘’, ‘\r\n’ ,用于区分换行符,但是这个参数只对文本模式有效。
2)常见 mode 取值组合
(1)、r或rt 默认模式,文本模式读
(2)、rb 二进制文件
(3)、w或wt 文本模式写,打开前文件存储被清空
(4)、wb 二进制写,文件存储同样被清空
(5)、a 追加模式,只能写在文件末尾
(6)、a+ 可读写模式,写只能写在文件末尾
(7)、w+ 可读写,与a+的区别是要清空文件内容
(8)、r+ 可读写,与a+的区别是可以写到文件任何位置
3)writerow()和writerows的区别
(1)writerow() 括号内的内容为列表;
(2)writerows() 括号内的内容为元组,且元组内的元素由两个以上的列表组成。