什么叫模块
模块的英文为Modules。
在Python中一个扩展名为.py
的文件就是一个模块。
模块与函数的关系:
一个模块可以包含多个函数、类、语句。
使用模块的优点:
- 方便其他程序和脚本的导入并使用
- 避免函数名和变量名冲突
- 提高代码的可维护性
- 提高代码的可重用性
自定义模块
- 创建一个.py的文件,名称尽量不要与Python自带的标准模块名称相同。
-
导入模块
# 导入整个指定模块 import 模块名称 [as 别名] # 导入指定模块的指定函数/变量/类 form 模块名称 import 函数/变量/类
代码示例:
import math as mt print(mt) # <module 'math' (built-in)> print(mt.pi) # 3.141592653589793 print(mt.pow(2, 3)) # 8.0 print(mt.ceil(9.001)) # 10 print(mt.floor(9.001)) # 9
导入指定函数/变量/类
from math import pi print(pi) # 3.141592653589793
以主程序形式运行
每个模块的定义中都包括一个记录模块名称的变量__name__
,程序可以检查该变量,以确定他们在哪个模块中执行。如果一个模块不是被导入到其他程序中执行,那么它可能在解释器的顶级模块中执行。顶级模块的__name__
变量的值为__main__
。
-
新建
a.py
def add(a, b): return a + b print(add(10, 20))
-
新建
b.py
import a print(a.add(100, 200))
-
运行
b.py
输出结果为:
30
300 -
修改
a.py
def add(a, b): return a + b if __name__ == '__main__': # 当a.py以主程序运行时才执行 print(add(10, 20))
-
运行
b.py
(此时b.py
为主程序)输出结果为:
300 -
运行
a.py
(此时a.py
为主程序)输出结果为:
30
Python中的包
- 包是一个分层次的目录结构,将一组功能相近的模块组织在一个目录下
- 作用:代码规范、避免模块名称冲突
-
包与目录的区别
- 包含
__init__.py
文件的目录称为包; - 目录里通常不包括
__init__.py
文件; - 编辑器中的图标也有差异。
- 包含
-
包的导入
import 包名.模块名[.函数/变量/类] [as 别名]
Python中常用的内置模块
模块名 | 描述 |
---|---|
sys |
与Python解释器及其环境操作相关的标准库 |
time |
提供与时间相关的各种函数的标准库 |
os |
提供了访问操作系统访问功能的标准库 |
calendar |
提供与日期相关的各种函数的标准库 |
urllib |
用于读取来自网上(服务器)的数据标准库 |
json |
用于使用Json序列化和反序列化对象 |
re |
用于在字符串中执行正则表达式匹配和替换 |
math |
提供标准算数运算函数的标准库 |
decimal |
用于进行精确控制运算精度、有效位数和四舍五入操作的十进制运算 |
logging |
提供了灵活的记录事件、错误、警告和调试信息等日志信息的功能 |
-
sys
代码示例import sys print(sys.getsizeof(24)) # 28 print(sys.getsizeof(True)) # 28 print(sys.getsizeof(False)) # 24
-
time
代码示例import time print(time.time()) # 1660629231.9002664 ;秒数 print(time.localtime(time.time())) # time.struct_time(tm_year=2022, tm_mon=8, tm_mday=16, tm_hour=13, tm_min=53, tm_sec=51, tm_wday=1, tm_yday=228, tm_isdst=0)
-
urllib
代码示例import urllib.request print(urllib.request.urlopen('http://www.baidu.com').read())
第三方模块的安装和使用
第三方模块的安装
pip install 模块名
第三方模块的使用
import 模块名
导入schedule模块代码示例
cmd
中执行pip install schedule
- 创建
demo.py
-
写入以下代码
import time import schedule def job(): print('haha···') schedule.every(3).seconds.do(job) while True: schedule.run_pending() time.sleep(1)
-
运行代码
输出结果:
haha···
haha···
haha···
相关文章
暂无评论...