python模块和包,常用模块math、random、random.sample(li,n)#不放回抽取n个随机样本

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_41685388/article/details/102569890

一、模块

模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py。模块可以被别的程序引入,以使用该模块中的函数等功能。这也是使用 python 标准库的方法。从物理的角度来说,一个模块就是一个.py文件,从逻辑的角度来说,就是模块的命名空间。

模块的好处:(1)在同一个模块.py文件中一个名字不能同时出现,为了解决名字冲突的问题,所以建立不同的文件。(2)有利于项目按照功能分块开展。(3)可以共享使用模块。

二、模块的导入

1.import  模块名1 [as 别名1],模块名2 [as 别名2],...    #当import导入模块之后,被导入的代码会从头到尾被执行一次

模块名.变量名/函数/...       #使用导入后的内容

import random    #导入random模块
random.randint(1,100)   #使用模块中的randint()生成1-100的随机数

2.from 模块 import 名字1 [as 别名1],名字2[as 别名2],...     #导入模块中指定名字的部分,不全部导入模块

#使用直接使用import后面的名字即可

from random import randint 
randint(1,100)

3.别名可以不使用,但名字较长时我们使用别名时,原来的名字就不能用了

from random import randint as r

r(1,100)

三、模块的搜索路径

目的:为了添加新模块起名是不要与原有模块名字相同导致冲突。

模块的搜索路径:当程序有import ... 的内容的时候,进行对模块的加载

加载顺序:内建解释器中先加载 buildins.py  ----脚本执行所在的模块中加载----python的path环境变量路径中加载----再到python的安装路径下加载。

四、__name__属性

一个模块被另一个程序第一次引入时,其主程序将运行。如果我们想在模块被引入时,模块中的某一程序块不执行,我们可以用__name__属性来使该程序块仅在该模块自身运行时执行。

#!/usr/bin/python3
# Filename: using_name.py

if __name__ == '__main__':
   print('程序自身在运行')
else:
   print('我来自另一模块')

说明: 每个模块都有一个__name__属性,当其值是'__main__'时,表明该模块自身在运行,否则是被引入。

说明:__name__ 与 __main__ 底下是双下划线, _ _ 是这样去掉中间的那个空格。


五、包

在python中的包,就相当于是存放.py文件的文件夹一样。

导入模块的时候要指定包

其中,在包中_init_.py   代表当前的包是python的开发包,不是普通的文件夹。当有其他的模块导入该包下的文件时,会自动的执行_init_.py的内容-----初始化包。


六、常用模块

#1.math模块
import math
print(math.sqrt(4))  #开平方根
print(math.e)
print(math.pi)

#2.random 随机数模块
import random
print(random.random())  #[0,1)之间的随机数
print(random.randint(0,10)) #[0,10]之间的随机整数
random.seed(1)  #种子 让后面的随机方法,每次运行时都产生相同的值
print(random.randrange(1,10,3)) #在[1,10)之间产生1,4,7的随机数

#3.sample(li,n) 不放回抽取样本,在random模块下,li代表样本源,n表示抽取几个
import random
li = [1,-1,5,6,9,11,10]
print(random.sample(li,2))  #从li中不放回地随机抽取2个数

猜你喜欢

转载自blog.csdn.net/weixin_41685388/article/details/102569890