python学习——第十三弹

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python学习——第十三弹相关的知识,希望对你有一定的参考价值。

前言

上一篇文章 ​​python学习——【第十二弹】​​中学习了python中的深拷贝和浅拷贝,这篇文章接着学习python中的模块

什么是模块

在python中,一个文件(以“.py”为后缀名的文件)就叫做一个模块,每一个模块在python里都被看做是一个独立的文件。

模块可以被项目中的其他模块、一些脚本甚至是交互式的解析器所使用,它可以被其他程序引用,从而使用该模块里的函数等功能,使用Python中的标准库也是采用这种方法。

python中的常见的系统内置模块有:

os模块:os模块包含普遍的操作系统功能

sys模块:提供了一系列有关Python运行环境的变量和函数

random模块:random模块用于生成随机数

time 模块: 主要包含各种提供日期、时间功能的类和函数

datetime模块:对time模块的一个高级封装

shutil模块:是一种高层次的文件操作工具

logging模块:将日志打印到了标准输出中

re模块:可以直接调用来实现正则匹配

pymysql模块:连接数据库,并实现简单的增删改查

threading模块:提供了更强大的多线程管理方案

queue模块:实现了多生产者,多消费者的队列

json模块:用于字符串和数据类型间进行转换json

模块的导入

python中导入模块的方法有:

import  模块名称  [as别名]


 from  模块名称 import  函数/变量/类

我们用例子具体实现下:

import  模块名称  [as别名]

# 例子1  导入数学运算模块  math
import math
print(math,id(math),type(math))
print(math.pi) #返回一个浮点数 3.141592653589793,表示圆周率。
print(------------------进行math模块中相关函数的使用-----------/)
print(dir(math))
print(pow()函数的使用,math.pow(2,3),type(math.pow(2,3))) #2的3次方
print(向上取整,math.ceil(3.00001)) #向上取整 4
print(向下取整,math.floor(3.99999)) #向下取整3

python学习——【第十三弹】_取整


from  模块名称 import  函数/变量/类

# 只引入math模块中的pi
from math import pi
print(pi) #3.141592653589793

当我们使用该方法引入模块时,要注意我们导入的是该模块中的pi常量,如果此时我们再引入math模块中其他的函数时程序就会报错:

python学习——【第十三弹】_主程序_02

from math  import  pi
# 尝试引入pow()函数
print(pow(2,3),type(pow(2,3))) #8 <class int>

 我们看到当我们再尝试引入没有进行导入的math函数时,会发现竟然也有返回值; 但是这里的pow()函数并非math模块中的函数,他输出的类型是int型而非math模块中pow函数的输出类型float型,因此虽然出现了返回值,但它调用的并非math模块中的pow()函数。

python学习——【第十三弹】_主程序_03

自定义模块

了解了什么时python中的模块后,我们就可以自定义模块了:

自定义模块将python文件的名字命名为一个简洁、见名知意的文件名。

python学习——【第十三弹】_主程序_04

定义了一个cal模块
def add(a,b):
return a+b
def div(a,b):
return a/b

然后进行自定义模块的导入:

# 引入新建的cal模块
import cal
print(cal.add(10,30))
print(cal.div(10,20))

# 只导入cal模块中的add函数
from cal import add
print(add(10,20))
# print(math.add(10,20)) #NameError: name math is not defined

python学习——【第十三弹】_主程序_05

进行主程序运行

​在每个模块的定义中都包括一个模块名称的变量 __name__ 变量的值是__main__。 程序可以检查该变量以确定它们在哪个模块中执行; 如果一个模块不是被导入到其他的程序中执行的, 那么它可能在解释器的顶级模块中执行。

我们自定义一个模块cal2:

python学习——【第十三弹】_取整_06

在index1.py中对其进行导入:

python学习——【第十三弹】_python_07

我们发现当我们在运行index1的文件时,运行结果是将cal2也运行了,也就是说cal2被index1导入后会在index1运行时也运行,如果我们想指定某个程序运行怎么办呢?

这就需要在cal2这个模块中添加主程序运行代码:

def  add(a,b):
return a+b
# 直接运行cal2程序 只有点击运行cal2这个文件时才能运行如下语句
if __name__ ==__main__:
print(add(10,30))

python学习——【第十三弹】_取整_08

这样就能避免模块被导入后,和新的文件同时运行了。

每篇一语

世上无难事,只怕有心人!

如有不足,感谢指正!

以上是关于python学习——第十三弹的主要内容,如果未能解决你的问题,请参考以下文章

北漂生活第十三弹-5.16 开启学习的一天

北漂生活第十三弹-5.16 开启学习的一天

『PyTorch』第十三弹_torch.nn.init参数初始化

源哥每日一题第十三弹 百练4124:海贼王之伟大航路 状压dp

第十三题

python学习[第十三篇] 条件和循环