一、什么叫模块
1.1、模块
1、模块英文为Modules
2、在Python中一个扩展名为.py的文件就是一个模块
1.2、函数与模块的关系
一个模块中可以包含N多个函数
1.3、使用模块的好处
1、方便其它程序和脚本的导入并使用
2、避免函数名和变量名冲突
3、提高代码的可维护性
4、提高代码的可重用性
二、自定义模块
2.1、创建模块
新建一个.py文件,名称尽量不要与Python自带的标准模块名称相同
2.2、导入模块语法
import 模块名称 [as 别名]
from 模块名称 import 函数/变量/类
2.3、示例
import math #关于数学运算
print(id(math))
print(type(math))
print(math)
print(math.pi)
print('----------------------------------------')
print(dir(math))
print(math.pow(2,3),type(math.pow(2,3)))
print(math.ceil(9.001))
print(math.floor(9.9999))
from math import pi
from math import pow
print(pi)
print(pow(2,3))
#print(math.pow(2,3))
2.4、 在demo中导入calc自定义模块使用
1、将对应目录修改为Sources Root
2、cale.py
def add(a,b):
return a+b
def div(a,b):
return a/b
3、demo1.py
import calc
print(calc.add(10,20))
print(calc.div(10,4))
demo2.py
from calc import add
print(add(10,20))
三、以主程序的形式执行
3.1、以主程序形式运行
在每个模块的定义中都包括一个记录模块名称的变量__name__,程序可以检查该变量,以确定他
们在哪个模块中执行。如果一个模块不是被导入到其它程序中执行,那么它可能在解释器的顶级模
块中执行。顶级模块的__name__变量的值为__main__
if __name__ == '__main__':
pass
3.2、示例cale
1、将对应目录修改为Sources Root
2、cale.py
def add(a,b):
return a+b
if __name__ == '__main__':
print(add(10,20)) #只有当点击运行calc2时,才会执行运算
3、demo1.py
import calc2
print(calc2.add(100,200))
四、python中的包
4.1、Python中的包
包是一个分层次的目录结构,它将一组功能相近的模块组织在一个目录下
4.2、作用:
代码规范
避免模块名称冲突
4.3、包与目录的区别
包含__init__.py文件的目录称为包
目录里通常不包含__init__.py文件
4.4、包的导入语法
import 包名.模块名
4.5、示例
1、module_a.py
a=10
2、demo.py
#在demo8的模块中导入 pageage1包
import pageage1.module_A as ma #ma是pageage1.module_A这个模块的别名
#print(pageage1.module_A.a)
print(ma.a)
4.6、导入带有包的模块时注意事项
import pageage1
import calc
#使用import方式进行导入时,只能跟包名或模块名
from pageage1 import module_A
from pageage1.module_A import a
#使用from ...import可以导入包,模块,函数,变量.
4.7、Python中常用的内置模块
import sys
import time
import urllib.request
import math
print(sys.getsizeof(24))
print(sys.getsizeof(45))
print(sys.getsizeof(True))
print(sys.getsizeof(False))
print(time.time())
print(time.localtime(time.time()))
print(urllib.request.urlopen('http://www.baidu.com').read())
print(math.pi)
五、第三方模块的安装及使用
5.1、第三方模块的安装
pip install 模块名
5.2、第三方模块的使用
import 模块名称 [as 别名]
from 模块名称 import 函数/变量/类
import schedule
import time
def job():
print('哈哈 -------')
schedule.every(3).seconds.do(job)
while True:
schedule.run_pending()
time.sleep(1)