模块是包含一组函数的文件,希望在应用程序中引用。如下.py文件就是一个模块。
通常情况下,我们把能够实现某一特定功能的代码放置在一个文件夹中作为一个模块,从而方便其他程序和脚本导入并使用。使用模块也可以避免函数名与变量名的冲突。
如需创建模块,只需将所需代码保存在文件扩展名为 .py 的文件中:
在名为 healthy_plan.py 的文件中保存代码:
"""
健康计划
计算公式:BMI = 体重(kg) / 身高(m)^2
BMI < 18.5:过轻
18.5≤ BMI <24:正常
24 ≤ BMI <27:过重
27 ≤ BMI < 30:轻度肥胖
30 ≤ BMI < 35:中度肥胖
BMI ≥ 35:重度肥胖
"""
def healthy(Height,Weight):
BMI = Weight / (Height ** 2)
if BMI < 18.5 :
print ("过轻")
elif 18.5 < BMI < 24 :
print ("正常")
elif 24 < BMI < 27 :
print ("轻度肥胖")
elif 27 < BMI < 30 :
print ("中度肥胖")
elif 30 < BMI < 35 :
print ("重度肥胖")
使用import语句导入模块
现在,我们就可以用 import 语句来使用我们刚刚创建的模块:
实例
导入名为 healthy_plan 的模块,并调用 healthy 函数:
import healthy_plan healthy_plan.healthy(1.70,60)
如果使用模块中的函数时,请使用以下语法:
module_name.function_name重命名模块
您可以在导入模块时使用 as 关键字创建别名:
实例
为 healthy_plan 创建别名 hp :
import healthy_planas as hp a = hp.healthy(1.70,60) print(a)使用 from…import 语句导入模
Python 的 from 语句让你从模块中导入一个指定的部分到当前命名空间中,语法如下:
from modname import name1[, name2[, ... nameN]]
实例
要导入模块 healthy_plan 的 healthy 函数,使用如下语句:
from healthy_plan import healthy #这个声明不会把整个fibo模块导入到当前的命名空间中,它只会将fibo里的fib函数引入进来。 healthy(1.70,60)模块搜索目录 __name__属性
一个模块被另一个程序第一次引入时,其主程序将运行。如果我们想在模块被引入时,模块中的某一程序块不执行,我们可以用__name__属性来使该程序块仅在该模块自身运行时执行。
if __name__ == '__main__':
print('程序自身在运行')
else:
print('我来自另一模块')
运行输出如下:
$ python using_name.py 程序自身在运行
$ python >>> import using_name 我来自另一模块 >>>
每个模块都有一个__name__属性,当其值是’__main__'时,表明该模块自身在运行,否则是被引入。
Python 中的包__name__ 与 __main__ 底下是双下划线, _ _ 是这样去掉中间的那个空格。
创建和使用包 创建包包简单理解就是“文件夹”,只不过需要在该文件下必须存在一个名为“xxx.py”的文件
实例
-
在 E盘 根目录下创建一个名为 mfunction 的包。
-
双击该文件夹
- 创建一个名为“n_function.py”的文件,在该文件中并不写任何东西
创建包以后,就可以在包中创建相应的模块,然后使用import 语句从包中加载模块。
我们可以使用以下语句加载刚才创建的包
import mfunction.n_function
在包中定义两个变量:
weight = 65 height = 1.70
导包之后,假如需要调用其中的“height”和“weight”变量时,需在变量名前加上“mfunction.n_function.”前缀。
实例
import mfunction.n_function
if __name__=='__main__':
print ("身高:",mfunction.n_function.height)
print ("体重:",mfunction.n_function.weight)
运行结果为:
身高:1.70 体重:65
通过 from...import 语句导包后无需加包名前缀,但是需要加模块前缀:
from mfunction import n_function
if __name__=='__main__':
print ("身高:",n_function.height)
print ("体重:",n_function.weight)
可通过from...import 语句导入模块中的函数
from mfunction.n_function import height,weight
通过改方式导入函数,变量或类后,在使用时直接使用函数名,类名,变量名即可。
实例
from mfunction.n_function import height,weight
if __name__=='__main__':
print ("身高:",height)
print ("体重:",weight)
运行结果
身高:1.70 体重:65引用其他的包 导入和使用标准模块
Python自带很多使用的模块,称为标准模块(标准库),我们可以使用import 语句直接导入到文件中使用。
实例
导入标准模块 random(用来生成随机数)
import random # 导入标准模块 random
导入后,可以通过模块名调用其提供的函数。
实例
通过模块random 调用其函数 randint() 生成一个 1-10 的随机整数
import random print(random.randint(0,10))Python常用的内置标准模块
| 模块名 | 描述 |
|---|---|
| sys | 与Python解释器及其环境操作相关的标准库 |
| time | 提供与时间相关的各种函数的标准库 |
| os | 提供了访问操作系统服务功能的标准库 |
| calendar | 提供与日期相关的各种函数的标准库 |
| urllib | 用于读取来自网上(服务器上)的数据的标准库 |
| json | 用于使用JSON序列化和反序列化对象 |
| re | 用于在字符串中执行正则表达式匹配和替换 |
| math | 提供标准算术运算函数的标准库 |
| decimal | 用于进行精确控制运算精度、有效数位和四舍五入操作的十进制运算 |
| shutil | 用于进行高级文件操作,如复制、移动和重命名等 |
| logging | 提供了灵活的记录事件、错误、警告和调试信息等日志信息的功能 |
| thinter | 使用Python进行GUI编程的标准库 |
在进行Python程序开发时,除了可以使用Python内置的标准模块外,还有很多第三方模块可以使用。这些第三方模块可以在Python官方推出的http://pypi.python.org/pppi 中找到。
在使用第三方模块前,需要先下载并安装该模块,然后就可以像使用标准模块一样导入并使用了。下载和安装第三方模块可以使用Python提供的pip命令实现。pip命令的语法格式如下:
pip command>[ modulename ]
参数说明如下:
command:用于指定要执行的命令。常用的参数值有install(用于安装第三方模块)、uninsHi(用于卸载已经安装的第三方模块)、list(用于显示已经安装的第三方模块)等。
modulename :可选参数,用于指定要安装或者卸载的模块名,当command为install或者uninsatll时不能省略。
例如,安装第三方numpy模块(用于科学计算),可以在命令行窗口中输入以下代码:
pip install numpy
执行上面代码,将在线安装 numpy 模块 。
下载中



