Python-中常用的模块

目录

 

一.模块的概念

二.模块导入:

三.模块的导入方式:

四.模块搜索路径:

五.pyc临时文件

六.把模块当脚本运行

七.random模块

八.sys模块

 


 

 

一.模块的概念

1.概念的介绍:

一个包含python代码的文件就是一个模块。

使用模块的作用:

1.现在程序开发文件比较大,都放在一个文件中维护不方便,拆分成多个文件方便维护 与管理

2.模块可以增加代码的重用率

 

2.创建模块:

 

模块本身就是一个文件,所有py代码都可以在文件中直接书写。不过我们开发共用模块时,最好在模块中书写以下内容。

 

变量               模块中的属性值

函数                 单独的功能

类                 相似功能组合

模块测试代码   临时使用,被导入时不会执行

注意:

  1. .模块名称遵循标识符。
  2. .模块只有第一次被导入的时候执行,多次导入不会执行。

例如:one_model.py就是一个简单的模块,这个模块的功能就是打招呼

 

二.模块导入:

1.导入原理:

. 模块导入会将要导入的文件执行一遍

. 导入模块的名称就是我们定义的脚本或包的名称

. 我们导入模块的过程总结就是:在指定的范围内搜索指定名称的python脚本或者包,将其运行,   获取其中的方法

三.模块的导入方式:

1、import 模块名

直接导入模块:

2、import 模块名 as 别名

如果模块的名称太长,我们可以这个模块起一个别名。

3、import 模块名1,模块名2,... 一行导入多个模块。(不推荐使用)

4、from ... import ...

当使用模块中的部分功能的时候,就可以使用局部导入方式。

from 模块 import 某个函数或者类。

作用:直接导入模块中的某个函数或者某个类或变量

注意:如果当前文件中的变量或者函数名称和模块中的名称重复,会使用就近原则。

 

 

5、from ... import ... as 别名

当导入的模块和当前模块中的名称相同的时候可以起别名进行区分。

四.模块搜索路径:

当你导入一个模块,Python解析器对模块位置的搜索顺序是:

1、当前目录

2、如果不在当前目录,Python则搜索在shell变量PYTHONPATH下的每个目录。

由sys模块的sys.path方法来规定

 

因为sys.path返回的数据类型是列表

1、列表可以修改、我们导入的范围也可以通过修改sys.path这个列表获得暂时的修改。例如通过 sys.path.append()添加目录,导入额外目录的模块。

2、列表是有序的,当搜索的过程当中,在第一个路径下搜索到了,就停止搜索。而且sys.path第一个路 径是脚本的当前路径,所以禁止大家讲自己的脚本命名成模块的名称。

因此需要注意的是:自己模块命名的时候不能和系统的模块名称相同。

 

五.pyc临时文件

为了提高加载模块的速度,python解释器会在__pycache__目录中下缓存每个模块编译后的版本,之后,再次被导入时,实际上导入的是这个.pyc的临时文件。

 

六.把模块当脚本运行

我们可以通过模块的全局变量__name__来查看模块名:
当做脚本运行:
__name__ 的值 等于'__main__'

当做模块导入:
__name__的值等于模块名

作用:用来控制.py文件在不同的应用场景下执行不同的逻辑
if __name__ == '__main__':

pass

当脚本运行时:

​​​​def print_name():
    print('hello, %s' % __name__)

if __name__ == '__main__':
    print_name()

输出结果:hello, __main__

由此可以看出:__name__ 的值 等于'__main__'

 

当模块导入时:

from one_model import print_name

print_name()

输出结果:hello, one_model

由此可以看出:__name__当模块导入式等于模块名

 

七.random模块

作用:产生随机数

1.随机小数:

random()

import random

ret = random.random()

print(ret)

     随机输出一个小数

. uniform(a,b)  产生随机范围内的小数 (四舍五入)

import random

ret = random.uniform(3,5.4)   # 随机输出3~5之间的小数

print(ret)

import random

ret = random.uniform(3,5.8)   # 随机输出3~6之间的小数

print(ret)

2.随机整数

 randint(a,b)     产生a,b范围内的整数,包含开头和结尾

import random

ret = random.randint(1,5)   # 随机输出1~5之间的整数,包含1 和 5

print(ret)

randrange(start,stop,[step])

    - 产生start,stop范围内的整数,包含开头不包含结尾。

    - step 指定产生随机数的步长。

import random

ret = random.randrange(1,11,2)   # 随机输出1~10之间的整数,步长为2

print(ret)

3.随机选择一个数据:

random.choice(lst)    随机返回序列中的一个数据

import random

s = [1,2,3,4,5,6]
ret = random.choice(s)   # 从列表s中随机选出一个数据

print(ret)

4.打乱

shuffle()    打乱列表顺序

import random

s = [1,2,3,4,5,6]

random.shuffle(s)   # 打乱列表的顺序,不需要变量承接

print(s)

5.练习:验证码的产生

import random
def yzm():
    code = ''  # 用来拼接随机产生的数字或字母
    for i in range(4):
        # 循环4次生成4个字母或数字
        # 生成数字
        num = random.randint(0, 9)
        # 生成字母
        zm = chr(random.randint(65, 90))
        # 随机选择一个内容
        lst = [num, zm]
        ret = str(random.choice(lst))  # 注意将数字转换成字符
        # 拼接内容
        code = ''.join([code, ret])

    return code


ret = yzm()
print(ret)

 

八.sys模块

1.sys.version返回解释器的版本号

print(sys.version)

 

2.sys.path 返回模块的搜索路径

print(sys.path)

3.sys.argv 接受命令行下的参数

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值