python基本运用(八)模块

python之模块

一、模块的介绍

(1)python模块,是一个python文件,以一个.py文件,包含了python对象定义和pyhton语句

图片

(2)python对象定义和python语句

(3)模块让你能够有逻辑地组织你的python代码段。

(4)把相关的代码分配到一个模块里能让你的代码更好用,更易懂

(5)模块能定义函数,类和变量,模块里也能包含可执行的代码

二、模块的导入

注意点:

(1)一个模块只要导入一次,不管你执行多少次import,一次就可以

(2)模块不调用时是置灰状态

(3)导入的方法:

a. import   模块名

import   time
print(1)
time.sleep(5)
print(2)

图片

b. from   包名.模块名   import *    (*表示所有的函数)

   

图片

c.导入具体函数

from   包名.模块名   import  hs

案例

from  bao.mk2 import  hs
hs()

图片

图片

d.通过别名调用格式:

from  bao.mk2 import  hs  as  f
f()

图片

二.模块具体运用讲解

1.时间模块

模块讲解:一、time模块

图片

图片

import time

#1970年到现在经过的秒数

print(time.time()) #1651200498.799537

print(time.ctime()) #固定格式的当前时间

time.sleep(3)) # 休眠,也是强制等待

print(time.asctime()) #转化为asc码显示当前时间

print(time.strftime(“%H-%M-%S”))   时分秒

print(time.strftime(“ %y-%m-%d”)) 年月日

print(time.strftime(“%H-%M-%S %y-%m-%d”)) #时间戳:按照格式输出内容:  时分秒,年月日

 2、random模块 生成随机浮点数,帧数,字符串,甚至帮助你随机选择列表中的一个元素,打乱一组数据等; 

from random import * 

print(random()) #生成0-1之间的浮点数,但是能取到0,不能取到1 

print(randint(1,100)) #生成指定范围内整数,包括开始值和结束值 

print(randrange(1,100,2)) # 生成指定范围内的奇数 ,包含开始值,不包含结束值

print(randrange(0,100,2)) #生成指定范围内的偶数,包含开始值,不包含结束值

 list1=[1,2,3,6,7,2] 

print(sample(list1,3))         #生成从一个固定集合中选n个数随机 ,3显示个数

print(choice(list1))         #随机生成一个字符 

shuffle(list1)         #打乱原始排序

print(list(list1))       

图片

 3、string 模块

1、print(string.digits)         #0123456789 所有的数据

2、print(string.hexdigits)         #0123456789abcdefABCDEF

3、print(string.ascii_uppercase)         #ABCDEFGHIJKLMNOPQRSTUVWXYZ #所有的小写

4、print(string.ascii_lowercase)         #abcdefghijklmnopqrstuvwxyz #所有小写

5、print(string.ascii_letters) #abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ #所有的大小写

6、print(string.ascii_letters+string.digits) #abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789  #所有大小写,字母和数字

作业:

图片

题目1方法1:

相同写法:list1=[1,2,3,4,5,6,7,8,9,0]

b=random.sample(list1,8)

for i in b:

    a+=[i]

for i in a:

    print(i,end="")

方法2:

from random import *

def_num = input('请输入手机号开头前三位')

num = 0

list_1 = []

result = ''

for i in def_num:

    list_1.append(i)

while num < 8:

    i = randint(0,9)

    list_1.append(i)

    num += 1

for j in list_1:

    result += str(j)

print("随机生成的手机号%s"%result)

方法3:

from random import choice

prefixes=["138","135","188","158","155"]

prefix=choice(prefixes)

random_part=''.join(choice('0123456789') for i in range(8))

phone_number = prefix + random_part

print(phone_number)

题目2:生成随机6位数验证码(数字、大小写英文),再加密处理:

==================================================================

一.hashlib 模块  

base64  和md5加密方式

一.base64

import  base64
a=base64.b64encode(b"123456")
print(a) #b'MTIzNDU2'

b=base64.b64decode(b'MTIzNDU2')
print(b) #b'123456'

图片

图片

在线加解密:(可验证加密解密是否正确)

http://encode.chahuo.com/      

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进制数据字符串值

图片

图片

案例2:

import   hashlib
md5dx=hashlib.sha256()
md5dx.update(b'123456')
print(md5dx.hexdigest()) #8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca1202

二.os模块

os模块:

os模块提供了多数操作系统的功能接口函数。当os模块被导入后,它会自适 应于不同的操作系统平台,根据不同的平台进行相应的操作,在python编 程时,经常和文件、目录打交道,所以离不了os模块。

os模块中常见的方法:

os.getcwd()获取当前执行命令所在目录

import  os
print(os.getcwd())

图片

os.path.isfile()判断是否文件

图片

os.path.isdir() #判断是否是目录

图片

os.path.exists() #判断文件或目录是否存在

图片

os.listdir(dirname) #列出指定目录下的目录或文件

图片

os.path.split(name) #分割文件名与目录

图片

os.path.join(path,name) #连接目录与文件名或目录

图片

os.mkdir(dir) #创建一个目录

图片

os.rename(old,new) #更改目录名称

图片

os.remove() 删除文件

三、python中re模块

一、re正则匹配基本介绍

正则匹配:使用re模块实现

1、什么是正则表达式?

正则表达式是一种对字符和特殊字符操作的一种逻辑公式,从特定的字符中,用正则表达字符来过滤的逻辑。

2、正则表达式是一种文本模式;

3、正则表达式可以帮助我们检查字符是否与某种模式匹配

4、re模块使pyhton语言用有全部的表达式功能

5、re表达式作用?

(1)快速高效查找和分析字符比对自读,也叫模式匹配,比如:查找,比对,匹配,替换,插入,添加,删除等能力。

(2)实现一个编译查看,一般在处理文件时用的多

二、认识正则表达式中的特殊元素?

\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值

注意:如果规则带了’+’,则匹配1次或者多次,无’+'只匹配一次

3、compile(不考虑)

编译模式生成对象,找到全部相关匹配为止,找不到返回一个列表[]

4、search

从第一个字符开始查找、一找到就返回第一个字符串,找到就不往下找,找不到则报错

group 以str 形式返回对象中match元素

span 以tuple形式返回范围

实战案例:

场景一、findall

从第一个字符开始查找,找到全部相关匹配为止,找不到返回一个空列表[]

(1)第一种情况查找字符汇总存在的字符

import re # 导入re模块

s="abcdefghijkaaaklde2"
f=re.findall("a",s)
print(f)

['a', 'a', 'a', 'a']显示查找的字符

(2)第二种情况查找不存在的字符

import re # 导入re模块

图片

#[] 显示的是一个空了列场景

二、match 匹配开头

从第一个字符开始匹配,如果第一个字符不是要匹配的类型、则匹配失败得到一个值就报错

第一种情况:开头是匹配的是存在的字符

import re # 导入re模块

import  re
s="abcdefghijkaaaklde2"
f=re.match("a",s)
print(f)

 #显示结果是索引位:(0, 1)

图片

第二种情况:开头匹配的是不存在字符

import re # 导入re模块

import  re
s="abcdefghijkaaaklde2"
f=re.match("b",s)
print(f)

图片

三、场景三、search

从第一个字符开始查找、一找到就返回第一个字符串,找到就不往下找,找不到则None

第一种情况:查看的字符存在,返回字符的索引位

import re # 导入re模块

import  re
s="abcdefghijkaaaklde2"
f=re.search("f",s)
print(f)

图片

第一种情况:查看的字符不存在,返回字符的是none

import re # 导入re模块

s=‘anb1dckk12356afjmba’

c=re.search(‘9’,s)

print© # None

图片

四、re模块数量词匹配详解

\d:数字0-9
import  re
s="abcfdef045ghijkfaaaklde2"
f=re.findall("\d",s)
print(f)

图片

\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都是

图片

re 标识符:

flags=标识符

(1)re.I(大写的i) 不区分大小写

import re # 导入re模块

import  re
s="abcfaadaAe\#$A$akld$aaAaae2"
f=re.findall("a",s,flags=re.I)
print(f)

图片

sub 替换

import re # 导入re模块

import  re
s="abcfaadaAe\#$A$akld$aaAaae2"
f=re.sub("a","y",s)
print(f)

图片

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值