首页 > 编程笔记

Python import用法(模块导入)

模块是指已经写好的 Python 文件,也就是一个*.py文件,模块中包含可执行的代码和定义好的数据、函数或类。

模块简介

Python 的标准函数库包含相当多的模块,要使用模块内的函数,就必须提前进行导入。

除了可以导入单一模块外,也可以一次导入多个模块,本文将介绍各个模块的导入方式。

一般而言,只要使用 import 语句就可以导入指定的模块,格式如下。

import 模块名称

例如,下面的语句可以导入数学(math)模块。

import math  #导入math模块


按照程序设计惯例,import 语句会放在程序最上方,模块导入后就可以使用该模块的函数。例如,以下范例使用 math 模块来求两个整数间的最大公因数。

import math  #导入math模块
print("math.gcd(72,48)= ",math.gcd(72,48)) #最大公因数

输出结果:

math.gcd(72,48)=  24


又例如,想要计算 3 的 4 次方的值时,就可以使用 math 模块的 pow() 函数,python 程序代码如下:

import math  #导入math模块
print("math.pow(3,4)= ",math.pow(3,4)) #输出运算结果

输出结果:

math.pow(3,4)=  81.0


但是如果要一次导入多个模块,则必须以逗号,分隔开不同的模块名称,语法如下。

import 模块名称1, 模块名称2, …, 模块名称n

例如,同时导入 Python 的随机数(random)模块和 math 模块的语法如下。

import random, math


我们来看一个例子,其中的 math 模块的 floor(n) 函数是取小于参数 n 的最大整数,random 模块的 random() 函数是取 0~1 范围内的随机数,python 程序代码如下:
import random, math #导入random和math模块
print("math.floor(10.6)= ",math.floor(10.6))  #取小于参数10.6的最大整数
print("random.random()= ", random.random()) #取0~1范围内的随机数
输出结果:

math.floor(10.6)=  10
random.random()=  0.8686875090815223


虽然可以直接用模块名称来使用模块中的函数,但过长的模块名称会给人们造成程序输入的困扰,这时不妨取一个简明且有意义的别名,语法如下。

import 模块名称 as 别名

有了别名之后,就可以利用“别名.模块名称”的方式对模块进行调用。

例如,上面例子中的 math 模块也以改用别名的方式调用,python程序代码如下:

import math as m  #将math取别名为m
print("floor(10.6)= ", m.floor(10.6))  #以别名来进行调用

输出结果:

floor(10.6)=  10


我们还可以只导入模块中的特定函数,这样就可以在程序中通过函数名称来调用,不再需要加上模块名称,格式如下。

from 模块名称  import 函数名称

例如,只想从 random 模块中导入 randint() 函数,可以直接在程序中以函数名称调用,程序代码如下:

from random import randint
print(randint(10,500)) #会产生指定范围内的随机整数

输出结果:

257


输入“from 模块名 import *”语句可导入该模块的所有函数,例如以下代码会导入 random 模块内的所有函数。

from random import *

上述例子可以改写成以下代码:

from random import *
print(randint(10,500))

输出结果:

273

示例

 为math 模块取一个别名,并试着以别名方式调用 math 模块的函数。Python 代码如下:
import math as m #以别名取代
print("sqrt(16)= ",m.sqrt(16)) #取平方根
print("fabs(-8)= ",m.fabs(-8)) #取绝对值
print("fmod(16,5)= ",m.fmod(16,5)) # 16%5
print("floor(3.14)= ",m.floor(3.14)) # 向下取整
输出结果:

sqrt(16)=  4.0
fabs(-8)=  8.0
fmod(16,5)=  1.0
floor(3.14)=  3

程序解说:

优秀文章