python之模块
一、模块的介绍组织python
1、python模块,是一个python文件,一个.py文件,半酣python对象定义和poytho语句
2、模块能够有逻辑的组织代码
3、把相关的代码分配到一个模块里能让你的代码更好用,更易懂。
4、模块能定义函数,类和变量,模块里也能包含可执行的代码。
二、模块的导入
1、import 模块名
格式:模块名.函数
案例:
import time #导入time模块
print(1)
time.sleep(10) #休眠
print(2)
2、导入所有的函数
from 模块名 import * 所有的函数
案例:
from time import * #from 模块名 import * 所有的函数
print(1)
sleep(10) #休眠 #函数名
print(ctime()) #显示当前时间
print(2)
3、指定函数导入
格式:
from 模块名 import 指定函数
from time import ctime #from 模块名 import 指定函数
print(1)
sleep(10) #休眠 #函数名
print(ctime()) #显示当前时间
print(2)
4、通过取别名来调用函数
格式:
from 包名.模块名 import 函数名 as 别名
p()
aa文件:
from bao.bb import hs as p
p()
bb文件:
def hs():
print(1)
def hs2():
print(2)
注意:
1、一个py文件中,一个模块主要导入一次,不管执行多少次,主要导入一次就ok
2、模块不调用时是置灰状态
三、模块的详解
1、time模块
案例2:
import time
print(time.time()) #1760580583.2631614 1970到现在的时间
print(time.ctime()) #Thu Oct 16 10:09:59 2025 固ti定格式显示当前时间
time.sleep(2) #休眠 ,括号内是秒数
print(time.asctime()) ##转换为asc码显示当前时间 Thu Oct 16 10:11:58 2025
print(time.strftime(" %y-%m-%d %H-%M-%S ")) #时间戳 按照格式输出时间
案例2:
from time import *
print(time()) #1760580583.2631614 1970到现在的时间
print(ctime()) #Thu Oct 16 10:09:59 2025 固ti定格式显示当前时间
sleep(2) #休眠 ,括号内是秒数
print(asctime()) ##转换为asc码显示当前时间 Thu Oct 16 10:11:58 2025
print(strftime(" %y-%m-%d %H-%M-%S ")) #时间戳 按照格式输出时间
2、random模块
生成随机浮点数、整数、字符串,从一组数据中选择数据,打乱数据
案例:
import random
print(random.random()) #0.5409081269951179 ##该方法是生成0-1之间的浮点数,但是能取到0,但是取不到1
print(random.randint(1,100))#生成指定范围内整数,包括开始和结束值
print(random.randrange(1,2)) ##生成指定范围内的数,包含开始值,不包含结束值
print(random.randrange(1,10,2))#生成指定范围内的奇数,不包括结束值
print(random.randrange(0,10,2))#生成指定范围内的偶数,不包括结束值
list1=[1,2,3,4,5,"a"]
print(random.sample(list1,3)) #选择n个随机且独立的元素
print(random.choice(list1)) ##生成随机字符
random.shuffle(list1) # #洗牌(随机数列)
print(list1)
3、string模块
import string
print(string.digits) #0123456789
print(string.hexdigits) #0123456789abcdefABCDEF
print(string.ascii_letters) #abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
print(string.ascii_lowercase) #abcdefghijklmnopqrstuvwxyz
print(string.ascii_uppercase) #ABCDEFGHIJKLMNOPQRSTUVWXYZ
print(string.digits+string.ascii_letters) #0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
作业:
1、使用random模块随机生成手机号码、自己定义手机号码开头的前1位1
案例;
import string
import random
sj=["1"]
sw=random.sample(string.digits,10)
print(sw)
案例2;
import string
import random
sj=["1"]
for i in range(10):
sj.append(random.choice(string.digits))
print("".join(sj))
2、用random模块随机生成6位数验证码
案例1:
import string
import random
print("".join(random.sample(string.digits+string.ascii_letters,6)))
y=[]
for i in range(6):
y.append(random.choice(string.digits+string.ascii_letters))
print("".join(y))
案例2:
import string
import random
print("".join(random.sample(string.digits+string.ascii_letters,6)))
print("".join(sj+sw))
4、加密模块
(1)base64加解密
import base64 #导入base64 加密模块
a=base64.b64encode(b"123456") #加密 b 二进制 密码
print(a) # b'MTIzNDU2'
b=base64.b64decode(b'MTIzNDU2')
print(b) #b'123456'
(2)md5加密,现在在hashlib模块
a、定义:md5是一种算法,可以将一个字符、文件,md5后可以生成一个固定为128bit的串,这个字符串唯一
b、python将md5归纳道hash 种
c、md5是可以将任意长度的输入,通过hash算法变成固定长度的输出,改输出就是散列值,也称摘要值,该算法就是哈希函数,也称摘要函数
import hashlib
m=hashlib.md5() #创建md5的对象
m.update(b"123456") #加密
print(m.hexdigest()) #e10adc3949ba59abbe56e057f20f883e #返回16进制的字符串
面试题:
1、如果工作种有很多数据,如果数据被改动,或传递修改后,看不出?
(1)通过加密检查数据
通过加密对数据进行加密处理,生成加密字符,如果有改动,字符就不相同
(2)比对数据不一样,加密字符就不同,说明数据有问题
2、将随机生成的验证码进行加密?
import hashlib
import string
import random
yzm="".join(random.sample(string.digits+string.ascii_letters,6))
print(yzm)
m=hashlib.md5() #创建md5的对象
m.update(yzm.encode(encoding="utf-8")) #加密
print(m.hexdigest()) #e10adc3949ba59abbe56e057f20f883e #返回16进制的字符串
5、os模块
os打开目录,文件,文档的操作
import os
url=r"C:\Users\Administrator\PycharmProjects\untitled\bao\bb.py"
url1=r"C:\Users\Administrator\PycharmProjects\untitled\bao"
url2=r"C:\Users\Administrator\PycharmProjects\untitled\bao22"
url3=r"C:\Users\Administrator\PycharmProjects\untitled\bao\zy.py"
print(os.getcwd()) #获取当前执行命令所在目录
print(os.path.isfile(url)) #True
print(os.path.isdir(url1)) #True
print(os.path.exists(url1)) #True
print(os.path.exists(url2)) #False
print(os.listdir(url1)) ##列出指定目录下的目录或文件
print(os.path.split(url)) ##分割文件名与目录
print(os.path.join(url1,"zs.py")) ##连接目录与文件名或目录
print(os.mkdir(url2))##创建一个目录
print(os.rename(url2,url3))
print(os.remove(url3))
6、re模块
一、re是正则匹配
1、正则表达式式一种对字符和特殊字符操作的一种逻辑公式,从特定的字符中,用正则表达字符来
过滤的逻辑;
2、正则表达式是一种文本模式
3、正则表达式可以帮助我们检查字符是否与某种模式匹配
4、re模块使python语言有全部的表达式功能
5、re表达式作用?
a、快速高效查找或分析字符比对,也叫模式匹配,比如查找、比对、替换、插入、添加
b、实现一个编译查看,一般在处理文件时用的多
二、认识re正则表达式中的特殊元素?
\d:数字0-9
\D:非数字
\s:空白字符
\n:换行符
\w 匹配字母数字
\W 匹配非字母数字
^:表示的匹配字符以什么开头
$:表示的匹配字符以什么结尾
:匹配前面的字符0次或n次 eg:ab (* 能匹配a 匹配ab 匹配abb )
+:匹配+前面的字符1次或n次
?:匹配?前面的字符0次或1次
{m}:匹配前一个字符m次
{m,n}:匹配前一个字符m到n次(包括n次),m或n可以省略,mn都是
1、findall
从第一个字符开始查找,找到全部相关匹配为止,找不到返回一个空列表[]
2、match
从第一个字符开始匹配,如果第一个字符不是要匹配的类型、则匹配失败得到一个none值
3、compile(不考虑)
编译模式生成对象,找到全部相关匹配为止,找不到返回一个列表[]
4、search
从第一个字符开始查找、一找到就返回第一个字符串,找到就不往下找,找不到则报错
7.json 模块
python字符类型和json 字符类型转换 (str)
1、dumps 将python中的字符类型字典转换成json
案例:
import json
d={"anme":"zs","age":18}
print(type(d)) #<class 'dict'>
print(d) #{'anme': 'zs', 'age': 18}
js=json.dumps(d)
print(type(js)) #<class 'str'>
print(js) #{"anme": "zs", "age": 18}
2、dump
3、loads json类型转换成python类型的字典类型
案例:
import json
d='{"anme":"zs","age":18}'
print(type(d)) #<class 'str'>
zd=json.loads(d)
print(zd)
print(type(zd)) #<class 'dict'>
4、load 将文件中json类型转换成python类型
import json
url1=r"C:\Users\Administrator\PycharmProjects\untitled\bao\abc.json"
js=json.load(open(url1,"r",encoding="utf-8"))
print(js)
print(type(js))