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
url1=r"C:\Users\Administrator\PycharmProjects\untitled\bao\a12.py"
url2=r"C:\Users\Administrator\PycharmProjects\untitled\bao"
url3=r"C:\Users\Administrator\PycharmProjects\untitled\bao\awww.py"
url4=r"C:\Users\Administrator\PycharmProjects\untitled\bao22"
url5=r"C:\Users\Administrator\PycharmProjects\untitled\bao33"
url6=r"C:\Users\Administrator\PycharmProjects\untitled\bao\a11.py"
print(os.getcwd()) #获取相对路径C:\Users\Administrator\PycharmProjects\untitled\bao
print(os.path.isfile(url1)) #True 判断是否存在文档
print(os.path.isfile(url2)) #False 判断是否存在文档
print(os.path.isdir(url1)) #False 判断是否存在目录
print(os.path.isdir(url2)) #True 判断是否存在目录
print(os.path.exists(url1)) #True 判断文文件或目录是否存在
print(os.path.exists(url3)) #False 判断文文件或目录是否存在
print(os.path.split(url1)) #分割文件名和目录 #('C:\Users\Administrator\PycharmProjects\untitled\bao', 'a12.py')
print(os.listdir(url2)) #列出指定目录下所有的目录和文件
print(os.path.join(url2,"a88.py")) #拼接路径
os.mkdir(url4) #创建目录
os.rename(url4,url5) 修改名称
os.remove(url6) #删除文档
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))