什么叫模块
模块的英文为Modules。
在Python中一个扩大名为.py
的文件就是一个模块。
模块与函数的关系:
一个模块能够蕴含多个函数、类、语句。
应用模块的长处:
- 不便其余程序和脚本的导入并应用
- 防止函数名和变量名抵触
- 进步代码的可维护性
- 进步代码的可重用性
自定义模块
- 创立一个.py的文件,名称尽量不要与Python自带的规范模块名称雷同。
导入模块
# 导入整个指定模块import 模块名称 [as 别名]# 导入指定模块的指定函数/变量/类form 模块名称 import 函数/变量/类
代码示例:
import math as mtprint(mt) # <module 'math' (built-in)>print(mt.pi) # 3.141592653589793print(mt.pow(2, 3)) # 8.0print(mt.ceil(9.001)) # 10print(mt.floor(9.001)) # 9
导入指定函数/变量/类
from math import piprint(pi) # 3.141592653589793
以主程序模式运行
每个模块的定义中都包含一个记录模块名称的变量__name__
,程序能够查看该变量,以确定他们在哪个模块中执行。如果一个模块不是被导入到其余程序中执行,那么它可能在解释器的顶级模块中执行。顶级模块的__name__
变量的值为__main__
。
新建
a.py
def add(a, b): return a + bprint(add(10, 20))
新建
b.py
import aprint(a.add(100, 200))
运行
b.py
输入后果为:
30
300批改
a.py
def add(a, b): return a + bif __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 sysprint(sys.getsizeof(24)) # 28print(sys.getsizeof(True)) # 28print(sys.getsizeof(False)) # 24
time
代码示例import timeprint(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.requestprint(urllib.request.urlopen('http://www.baidu.com').read())
第三方模块的装置和应用
第三方模块的装置
pip install 模块名
第三方模块的应用
import 模块名
导入schedule模块代码示例
cmd
中执行pip install schedule
- 创立
demo.py
写入以下代码
import timeimport scheduledef job(): print('haha···')schedule.every(3).seconds.do(job)while True: schedule.run_pending() time.sleep(1)
运行代码
输入后果:
haha···
haha···
haha···