day17

mac2022-06-30  81

目录

包time模块datetime模块random模块hashlib模块和hmac模块tying模块requests模块re模块

定义:

包就是模块的一种形式,包的本质就是一个含有.py文件的文件夹

为什么要用包:模块的第一个文件就只有十个功能,但是未来在扩展版本的时候,模块名和用法应该最好不要去修改,但是这只是对使用者友好,而由于版本扩展,文件越来越大,模块设计者对模块的管理、维护会越来越复杂,因此我们可以使用包来扩展模块的功能。

导入包发生的三件事情:

创建一个包的名称空间由于包是一个文件夹,无法执行包,因此执行包下的.py文件,将执行官过程中产生的名字存放于包名称空间中(即包名称空间中存放的名字都是来源于.py)在当前执行文件中拿到一个名字aaa,aaa是指向包的名称空间的。 导入包的两种方式: import...from...import...

包是含有_init_.py的文件夹;导包就是导入_init_

​ 包一定是被当做模块文件导入的,模块文件m1.py/m2.py的搜索路径以执行文件 包的介绍.py路径为基准

​ 相对导入绝对导入:只能在包中内部使用

time模块

time模块:提供了三种不同类型的时间(时间戳),三种不同类型的时间可以互相转换

*****主要掌握

time.time() time.sleep(1)

datetime模块

datetime模块:时间的加减

import datetime now = datetime.datetime,now() print(now) 默认3天 print(now + datetime.timedelta(3)) 减3周 print(now - datetime.timedelta(weeks = 3))

random模块

随机数模块

掌握

随机0-1之间的数

print(random.random())

[1-3]

print(random.randint(1,3))

随机选择一个

lt = [1,2,3]

print(random.choice(lt))

了解

print(random.sample([1,2,'a','c',2],2))

运行结果:

['c', 1]

hashlib模块和hmac模块

hashlib模块:对字符加密hmac模块:对字符加密,并且加上密钥 import hashlib m=hashlib.md5() m.update(b'hfss1313') print(m.hexdigest()) hash_pwd = '0562b36c3c5a3925dbe3c4d32a4f2ba2' pwd_list = [ 'hfss1313', 'hash1313', 'hash94139413', 'hash123456', '123456hash', 'h123ash', ]

hash是一种算法

tying模块

与函数联用,控制函数参数的数据类型,提供了基础数据类型之外的数据类型

类型检查,防止运行时出现参数和返回值类型不符合作为开发文档附加说明,方便使用者调用时传入和返回参数类型该模块加入后并不会影响程序的运行,不会报正式的错误,只有提醒注意:tying模块只有在python3.5以上的版本中才可以使用,pycharm目前支持tying检查

tying常用类型

int、long、float:整型、长整型、浮点型bool、str:布尔型,字符串类型list、tuple、dict、set:列表、元组、字典、集合iterable、iterator:可迭代类型、迭代器类型generator:生成器类型

requests模块

爬虫——》爬取数据,模拟浏览器对url发送请求,拿到数据

re模块

re模块:去字符串 找符合某种特点的字符串

贪婪模式

.(任意类型)*(0-无穷个)

非贪婪模式

.(任意类型)*(0-无穷个)?(让他进入非贪婪模式)

特殊构造

s='a123 aaaa a234 abc'

a(?=\d):a后面是数字,但是不要数字,不消耗字符串内容

匹配邮箱

s=#@#@#@nickchen121@163.com$$$$nick@qq.com$$#$#$[]]2287273393@162.com@$243lks' # \w(字母/数字/下划线)+(0-无穷个)@ \w(字母/数字/下划线)+(0-无穷个).com print(re.findall('\w+@\w+.com', s))

以下必须记住的:

贪婪.(任意字符)*(0-无穷个) s = 'abcd abcdkkkkkksb abcd ' print(re.findall('a.*k',s)) 运行结果:['abcd abcdkkkkkk'] 非贪婪:.*? s = 'abckkkkkkkkkkkkkkkb ' print(re.findall('a.*?b',s)) 运行结果:['ab'] findall:不匹配换行符 s = 'abcd abcd*asb abcd ' print(re.findall('abc.abc',s)) print(re.findall('abcd.abcd',s,re.S)) 运行结果: [] ['abcd abcd'] re.S:修饰符,匹配换行符 s = 'abcd abcd*asb abcd ' print(re.findall('abcd.abcd',s,re.S)) 运行结果:['abcd abcd'] match:从头开始找,找到就停止查找;找不到就报错 s = 'abcd abc abcd ' res = re.match('abcd*',s) print(res.group()) 运行结果:abcd search:从字符串中找,找到就不找了 s = 'abcd abc abcd ' res = re.search('abc',s) print(res.group()) 运行结果:abc 分组:只要括号里面的 s = 'abcd aaaa abcd ' print(re.findall('a(.)c(d)',s)) 运行结果:[('b', 'd'), ('b', 'd')] 有名分组:给分组加名字 s = 'abcd aaaa abcd ' print(re.search('a(?P<name1>.)c(?P<name2>d)', s).groupdict()) 运行结果:{'name1': 'b', 'name2': 'd'}

了解:

元字符

特殊构造的元字符

特殊修饰符

函数

转载于:https://www.cnblogs.com/gfhh/p/11604488.html

最新回复(0)