Day13_模块与包的使用
模块的使用
- 什么是一个模块 - python中一个py就是一个模块
- 怎么在一个模块中使用另一个模块中的内容(内容包含数据、函数、类等)
"""
注意:1)如果要在一个模块中使用另一个模块中的内容,被使用的模块的模块名必须是标识符并且不是关键字
2)一个模块中只有全局变量才能被其他模块使用
3)其他模块只有在被导入以后才能使用
"""
- 怎么导入模块
"""
1)import 模块名 - 导入指定模块,导入后可以通过'模块名.变量'的方式使用被导入的模块中所有的全局变量
2)from 模块名 import 变量1,变量2,变量3,... - 导入指定模块中的指定变量,导入后直接使用指定变量
3)from 模块名 import * - 导入指定模块中所有的变量,导入直接使用
4)重命名:
import 模块名 as 新模块名 - 给模块重命名,重命名后使用新的名字来代替原模块名
form 模块名 import 变量1 as 新变量1,变量2 as 新变量2,变量3,...
"""
- 导入模块的原理
"""
执行代码的时候,如果遇到import或者from—import导入模块的时候,系统会自动进入指定模块,将模块中的代码全部执行一遍。
"""
- 重复导入
"""
python导入模块的时候会自动检测被导入的模块是否已经导入过,如果导入过不会重复导入,
(在任何位置需要任何模块的时候直接导,不需要有任何重复导入的负担。)
"""
# 这个if语句中的代码在模块被直接运行的时候会执行,在被别的模块导入的时候不会执行。
# if __name__ == '__main__':
# 原理:每个模块中都有__name__的默认值py文件的文件名。当执行运行某个模块的时候,
# 这个模块__name__会自动变为__main__,没有被执行运行的模块的__name__都是文件名。
包的使用
- 什么是包
- 包就是包含(init.py)文件的文件件。包是专门用来对模块进行封装。
- 包的使用
"""
1)import 包.模块
2)import 包.模块 as 新名字
3) from 包 import 模块1,模块2,...
4) from 包.模块 import 变量1,变量2,...
"""
- 导入包中内容的原理
- 通过包导入模块或者模块内容的时候,系统会先执行包中的__init__.py文件,再执行包中的文件。
random模块
- 随机整数
- random.randint(m,n) - 产生m到n的随机整数
- 随机浮点数
- random.random() - 产生0~1的随机小数:[0, 1)
- 随机打乱列表中元素的顺序
- random.shuffle(列表)
- 随机抽取一个元素或者N个元素(有放回的)
- random.choice(序列) - 随机获取序列中的一个元素
- random.choice(序列,k = N) - 随机获取序列中的N个元素
- 产生唯一文本信息
import uuid
print(uuid.uuid1()) #5210c338-b488-11eb-919e-74d02be5a35d
# print(uuid.uuid3())
print(uuid.uuid4()) #a4d6b2e2-7354-41aa-a743-9d3f639279b4
时间相关模块
- 时间戳
- 时间戳是通过保存某个时间点到1970年1月1日0时0分0秒(格林威治时间)的时间差(s)
- 保存时间戳比保存字符串的时间更节约内存
- import time - 导入时间模块
-
time.time( ) - 获取当前时间的时间戳
-
time.localtime() - 获取当地时间,返回的是结构体时间
time.localtime(时间戳) - 将时间戳转换为当地结构体时间
-
time.sleep(N) - 睡眠指定时间(单位是秒)
-
from datetime import datetime ,time,date,timedelta - 导入datetime模块中相关函数
- 获取当前时间
- datetime.now( ) - 获取当前时间,需要将该数据赋值给变量才能保存
- date.today( ) - 获取当天日期
- 获取时间对应的时间戳
- datetime对象.timestamp() - 获取时间对象对应的时间戳
- 字符串时间转换成时间对象
- datetime.strptime(时间字符串,时间格式字符串)
- datetime.strftime(时间格式字符串,时间对象)
t_str = '2015-3-4 8:30:25'
t4 = datetime.strptime(t_str, '%Y-%m-%d %H:%M:%S')
#时间格式字符串对应字典{ % Y: 年, % m: 月, % d: 天, % H: 时, % M: 分, % S: 秒}
- 日期的加减操作
t_str = '2015-12-31 23:59:59'
t7 = datetime.strptime(t_str, '%Y-%m-%d %H:%M:%S')
print(t7 + timedelta(seconds=1))
print(t7 - timedelta(seconds=1))
print(t7 + timedelta(weeks=1))