一、模块的介绍
(1)python模块,是一个python文件,以一个.py文件,包含了python对象定义和pyhton语句
(2)python对象定义和python语句
(3)模块让你能够有逻辑地组织你的python代码段。
(4)把相关的代码分配到一个模块里能让你的代码更好用,更易懂
(5)模块能定义函数,类和变量,模块里也能包含可执行的代码
二、模块的导入
注意点:
(1)一个模块只要导入一次,不管你执行多少次import,一次就可以
(2)模块不调用时是置灰状态
1、
格式:import 模块名
使用:模块名.函数名
案例:
import time
print(1)
time.sleep(5) #休眠
print(2)
2、from 包名.模块名 import * (*表示所有的函数)
案例:
from time import *
print(1)
sleep(5)
print(2)
案例2:
from bao.aa import *
案例:
aa模块
def gs():
print(1)
def gs1():
print(2)
def gs2():
print(3)
bb模块:
from bao.aa import *
gs()
gs1()
gs2()
3、from 包名.模块名 import 函数名 (*表示所有的函数)
案例1:
from time import sleep
print(1)
sleep(5)
print(2)
案例2:
aa文件:
def gs():
print(1)
def gs1():
print(2)
def gs2():
print(3)
bb文件:
from bao.aa import gs(固定函数)
gs()
4、
通过取别名来调用函数
格式:from 模块名 import 函数名 as 别名
案例1:
from time import sleep as f
print(1)
f(5)
print(2)
案例2:
aa模板
def gs():
print(1)
def gs1():
print(2)
def gs2():
print(3)bb模块:
from bao.aa import gs as b
b()
二、模块讲解
(一)time模块
import time 或 from time import *
print(time.time()) #1651200498.799537 ##1970年到现在经过的秒数
print(time.ctime()) #固定格式的当前时间
time.sleep(3)) # 休眠,也是强制等待 (重要)
print(time.asctime()) #转化为asc码显示当前时间
print(time.strftime(“%H-%M-%S %y-%m-%d”)) #时间戳:按照格式输出时间内容:(重要)
(二)、random模块
生成随机浮点数,帧数,字符串,甚至帮助你随机选择列表中的一个元素,打乱一组数据等;
from random import *
print(random()) #生成0-1之间的浮点数,但是能取到0,不能取到1
print(randint(1,100)) #随机生成指定范围内整数,包括开始值和结束值
print(randrange(1,100,2)) # 生成指定范围内的奇数
print(randrange(0,100,2)) #生成指定范围内的偶数
f=[1,2,3,6,7,2]
print(sample(f,3)) #生成从一个固定集合中选n个数随机
print(choice(f)) #随机生成一个字符
shuffle(f) #洗牌
print(list(f))
(三)string 模块
print(string.digits) #0123456789 所有的数据
print(string.hexdigits) #0123456789abcdefABCDEF
print(string.ascii_uppercase) #ABCDEFGHIJKLMNOPQRSTUVWXYZ #所有的小写
print(string.ascii_lowercase) #abcdefghijklmnopqrstuvwxyz #所有小写
print(string.ascii_letters) #abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ #所有的大小写print(string.ascii_letters+string.digits) #abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 #所有大小写,字母和数字
(四)加密模块
加密模块:
import hashlib
base64
MD5
http://encode.chahuo.com/ 在线加解密
一、加密算法
md5、rsa、AES ,DES.BASE
DES 以64位为分组队数据加密,加密和解密是同一算法‘;
rsa加密 算法:是一种非对称加密算法(在公开秘钥加密和电子商业中rsa被广泛使用)
AES rijndael 加密法对称加密中最流行的算法之一(AES为分组密码)
1、base64 加密,解密
(1)加密
import base64
dx=base64.b64encode(b"123456")
print(dx) #b'MTIzNDU2'
(2)解密
import base64
dx=base64.b64decode(b'MTIzNDU2')
print(dx)
b 时二进制的方式
(3)md5
MD5加密
(1)md5 是一种算法,可以将一个字符串或文件,md5后,就可以生成一个固定为128bit的串,这个串,基本上唯一;
(2)python2中有md5
(3)python3将MD5 归纳到hash 模块,译作:‘散列’,直译为‘哈希’。
(4)md5 可以把任意长度的输入,通过hash算法,变换成固定长度的输出,该输出就是散列值,也称摘要值,该算法就是哈希函数,也称摘要函数。
(5)md5 是最常见的摘要算法,速度快,生成结果是固定16字节,通常用32位的16进制字符串表示。
(5)hash模块中包含MD5、sha1 ,sha256 ,sha512,等
(6)摘要;hash.digest() 返回摘要,作为二进制数据字符串值;
hash.hexdigeest 返回摘要,作为16进制数据字符串值
(7)案例1:
import hashlib
m=hashlib.md5() # 创建MD5对象
m.update(b"123456")
print(m.hexdigest()) #e10adc3949ba59abbe56e057f20f883e
十六进制转换输出
备注:
1、python中md5要加上b,python2不需要
2、md5 不能解密,但是加密是固定,关系是一一对应,可以被对撞。
案例:
import hashlib
dx=hashlib.sha3_256()
dx.update(b"123456")
print(dx.hexdigest()) #d7190eb194ff9494625514b6d178c87f99c5973e28c398969d2233f29
面试题:
(1)如果在工作中有很多数据,如果数据被改动,或传递别修改,看不出?
a、通过加密检查数据
通过加密对数据进行加密处理,生成加密字符,如果有改动,字符就不相同
b、比对数据不一样,如果加密的字符不相同,说明两个数据不一致
作业:
通过md5加密算法把随机生成的6位数验证码进行加密返回16进制的字符串