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
案例1;
import string
import random
sj=["1"]
for i in range(10):
sj.append(random.choice(string.digits))
print("".join(sj))
案例3:
import random,string
nums=random.sample(string.digits,10)
number='1'+ ''.join(nums)
print(number)
2、用random模块随机生成6位数验证码
案例2:
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、加密模块
bs64、md5 两种方式
在线加密网站:
(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
# print(os.getcwd()) #获取当前相对路径C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\hz85
# print(os.path.abspath(__file__)) #获取绝对路径
# print(os.path.dirname(os.path.dirname((__file__)))) # 获取项目路径
# url1=r"C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\hz85\\aa.py"
# url1=os.path.abspath(__file__) #获取绝对路径
# url1=os.path.join(os.getcwd(),"aa.py")
# print(url1)
# url2=os.getcwd()
# print(url2)
# url3=os.path.dirname(os.getcwd())
url3=os.path.join(os.path.dirname(os.getcwd()),"hz89")
print(url3)
url4=os.path.join(os.path.dirname(os.getcwd()),"hz90")
# print(os.path.isfile(url2)) #False 判断时不是文件,是目录
# print(os.path.isfile(url1)) #True 判断aa是文件
# print(os.path.isdir(url2)) #True 判断是一个目录
# print(os.path.isdir(url1)) # False aa文件不是目录
# print(os.path.exists(url1)) #True 存在
# print(os.path.exists(url3)) #False 不存在
# print(os.listdir(url2)) #查看目录下所有的文件和文档
# print(os.path.split(url1)) #分割路径,相对路径和文档名分开
# print(os.path.join(url2,"dcs88.py")) #拼接路径:相对路径+文件名
# print(os.mkdir(url4)) #创建目录
# print(os.rename(url4,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
从第一个字符开始查找、一找到就返回第一个字符串,找到就不往下找,找不到则报错
import re
str1="ab\\naabaac!d1\\n efaaaaBaghaai@jBka\\na2b\\nbmaaam4"
print(re.findall("\\d",str1)) #数字0-9
print(re.findall("\\D",str1)) #非数字
print(re.findall("\\s",str1)) #空白字符
print(re.findall("\\n",str1)) #换行符
print(re.findall("\\w",str1)) #匹配字母数字
print(re.findall("\\W",str1)) #匹配非字母数字
print(re.findall("^a",str1)) #表示的匹配字符以什么开头
print(re.findall("^b",str1)) #[] 不是以b开头显示[]
print(re.findall("4$",str1)) # 表示的匹配字符以什么结尾
print(re.findall("b$",str1)) #[] 不是以b结尾显示[]
# print(re.findall("a*",str1)) #匹配前面的字符0次或n次
print(re.findall("a+",str1)) #匹配+前面的字符1次或n次
print(re.findall("a?",str1)) #匹配?前面的字符0次或1次
print(re.findall("a{2,4}",str1)) #匹配前一个字符m到n次(包括n次)
print(re.findall("a{3}",str1)) #{m}:匹配前一个字符m次
print(re.findall("b",str1,flags=re.I)) #查询不区分大写 re.I
#re.I是一个标识符
print(re.sub("\\d","k",str1)) # 替换
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 将python中字符类型转成json文档类型
案例:
import json
d={"anme":"zs","age":18}
print(type(d)) #<class 'dict'>
print(d) #{'anme': 'zs', 'age': 18}
json.dump(d,open("js57.json","a")) # 将字典写入到json文件中,“a” 添加文件
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))
网硕互联帮助中心


评论前必须登录!
注册