1.模块
Python最大的魅力之一就是拥有丰富的第三方模块,用户在编程时可以直接调用模块来实现强大的功能,无须自己编写复杂的大代码。
如果要在多个程序中重复实现某一个特定功能,那么能不能直接在新程序中调用自己或他人已经编写好的代码,而不用再新程序中重复编写功能类似的代码呢?答案是肯定的,这就要用到Python中的模块。模块也可以称为库或包,简单来说,每个以“.py”为扩展名的文件都可以称为一个模块。Python的模块主要分为下面三种。
①内置模块
内置模块是指Python自带的模块,如sys、time、math等
②第三方模块
通常所说的模块就是指开源模块,这类模块是由一些程序员或企业开发并免费分享给大家使用的,通常能实现某一个大类的功能。例如,xlwings模块就是专门用于控制Excel的模块。
③自定义模块
Python用户可以将自己编写的代码或函数封装成模块,以方便在编写其他程序时调用,这样的模块就是自定义模块。需要注意的是,自定义模块不能和内置模块重名,否则将不能再倒入内置模块。
2.导入模块
当我们需要使用模块的时候,只需使用 import 语句导入对应的模块即可。
例如:
①我们新建一个Python文件,取名为new_welcome.py
②在new_welcome.py文件里写入print('祝各位万事如意')
③在main.py文件里写入import new_welcome并运行代码。
我们使用 import 模块名(不需要 .py 后缀)导入模块,相当于我们在 main.py 里借用并运行了 new_welcome.py 文件里的代码,因此运行结果是 祝各位万事如意。你可以理解为 Python 会将 import new_welcome 语句替换new_welcome.py 里的代码。
例:
# other.py
pi = 3.14159265359
def half(x):
return x / 2
# main.py
import other # 导入 other 模块
print(other.pi)
# 输出:3.14159265359
print(other.half(4))
# 输出:2.0
我们可以看到,当导入模块后,要使用模块中的变量、函数,需要通过 模块名.变量名 和 模块名.函数名() 的方式。. 表明了从属关系,表示某个模块里面的某个变量或函数。
import 语句还有一种用法是 import ... as ...,比如我们觉得 other 这个模块名太长,就可以用 import other as o,相当于给 other 取了一个别名为 o,之后我们就可以使用 o 来替代 other。例:
# other.py
pi = 3.14159265359
def half(x):
return x / 2
# main.py
import other as o # 导入 other 模块
print(o.pi)
# 输出:3.14159265359
print(o.half(4))
# 输出:2.0
数据分析常用的 pandas 和 numpy 常被简写成 pd 和 np,所以你会看到 import pandas as pd 和 import numpy as np 这样的写法。
另外,当我们需要同时导入多个模块时,可以用逗号隔开。比如 import a, b, c 可以同时导入 a.py、b.py 和 c.py 三个文件。
3.from语句导入法
有些模块中的函数特别多,用import语句全部导入后会导致程序运行速度慢,将程序打包后得到的文件体积也会很大,如果只需要使用模块中的少数几个函数或者变量,就可以采用from语句导入法,这种方法可以指定要导入的函数或参数。from语句的基本语法格式如下:
from 模块名 import 函数名或参数
如:
from math import sqrt #导入math模块中的sqrt函数
from turtle import forward, backward, right, left #导入turtle模块中的多个函数
使用from语句导入时,如果将函数名用通配符“*”代替,写成“from 模块名 import *”,则和import语句导入法一样,会导入模块中的所有函数。
如:
from math import * #导入math模块中的所有函数
需要注意的是:使用 from ... import ... 的方式导入就不能再用 模块名.变量名 和 模块名.函数名 的方式访问模块内的变量或函数。