0.前言
这篇文章将总结Python3中模块的知识,包括模块的基本概念和模块的定义、导入及应用。
1.模块的基本概
①模块概念:
模块是一个包含所有你定义的函数和变量的文件,其后缀名是 .py。模块可以被别的程序引入,以使用该模块中的函数等功能。这也是使用 python 标准库的方法。
②概念理解:
模块本质是一个后缀为.py的文件,这个文件里包含了一个或多个函数方法,我们可以通过导入模块(文件),然后使用模块中的方法,模块名等于文件名,类似于C语言中的头文件吧,这是我的见解。
③模块分类:系统内置模块、自定义模块、第三方开元模块。
- 系统内置模块:
系统自带模块,不需要另行安装,直接可以用,如sys、time、random等。 - 自定义模块:
由用户自己定义,对某段逻辑或某些函数进行封装后供其他函数调用。注意:自定义模块的命名一定不能和系统内置的模块重名了,否则将不能再导入系统的内置模块了。 - 第三方开元模块:
这部分模块可以通过pip install进行安装,有开源的代码,如requests模块等。
2.自定义模块
正如前面所说的,模块是一个 .py文件,里面主要是分装一些函数方法,要定义一个模块的话,首先创建一个 .py文件,然后在这个文件中写入函数方法就行了。
下面举一个例子来认识Python中的模块:
# Filename:text.py
def Cmp(a, b):
if a > b:
print(a)
else:
print(b)
return
正如你所看到的,把以上代码放到一个叫text.py的文件中就可称之是一个名为text的模块。
需要注意的是:自定义模块需要创建在同一项目中,不然解释器找不到。
下面谈论模块的导入与调用,这才是重点。
3.模块的调用
- 模块导入语句:import和from…import,需要放在代码行的顶端。
- 当解释器遇到 import 语句,如果模块在当前的搜索路径就会被导入。
- 搜索路径是一个解释器会先进行搜索的所有目录的列表。
①import导入模块
用import直接导入模块,如果需要导入多个模块可以用逗号隔开,如下程序.
import random, time
i = random.randint(1, 10)
print("产生的随机数为:", i)
j = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
print("当前时间为:", j)
"""
# 这是一个猜数字游戏
# 导入random模块
import random
# random中的randint方法,产生一个随机数
Computer = random.randint(1, 10)
while True:
player = int(input("请输入您猜的数字:"))
if player < Computer:
print("您猜的数字太小了,再猜猜!")
elif player > Computer:
print("您猜的数字太大了,再猜猜!")
elif player == Computer:
print("恭喜您,猜对了,小花花送给您!")
break
"""
运行结果:
产生的随机数为: 7
当前时间为: 2019-05-01 21:44:51
上面还附带了一个我的入坑程序,挺好玩的,哈哈~~
注意:
import导入的模块调用功能时,需要用模块名来调用方法。如:random.randint(1,10)
②from…import
区别于import直接导入,用from…import导入可以只导入模块的部分方法,并直接调用方法,如下程序:
from random import randint,randrange
i = randint(1, 5)
j = randrange(1, 10, 2)
注意:
上面的程序就只调用了random中的randint和randrange两个方法,后面的程序也只能用这两个方法,而不能用其他方法。
③from…import*
这个语句表示导入的模块的全部方法,并可以直接调用函数方法而不需要用模块来调动方法,区别与用import语句直接导入模块。
from random import*
i = randint(1, 5)
j = randrange(1, 10, 2)
注意:
这种方法可以减少代码长度,但前提是要对导入模块中的方法十分熟悉,不然还是用import直接导入模块,再用模块来索引成员方法。
Python的第三方开元模块十分强大,善于使用模块也能降低开发难度。
时间:2019年5月1日21:01:14
后续学习中遇到的一些模块总结
–
1.随机数random模块
方法 | 功能 |
---|---|
seed(x) | 给随机数一个种子值,默认随机种子是系统时钟 |
random() | 生成一个[0,1.0]之间的随机小数 |
uniform(a,b) | 生成一个a到b之间的随机小数 |
randint(a,b) | 生成一个a到b之间的随机整数 |
randrange(a,b,c) | 随机生成一个从a开始到b以c递增的数 |
choice(< list >) | 从列表中随机返回一个元素 |
shuffle(< list >) | 将列表中的元素随机排序(打乱) |
sample(< list >, k) | 从指定的列表中随机获取k个元素 |