1. json模块
JSON全称是(JavaScript Object Notation)是一种轻量级的数据格式,一般用于前后台,数据的交互。 导入 import json print(json.__all__) 常用的方法:dumps、loads、dump、load 在使用之前 我们要了解两个名字 序列化和反序列化 序列化: 把一个Python对象转化成json字符串 反序列化: 把json字符串转化成python dumps :indent实现缩进, sort_keys 实现排序
python对象 | json对象 |
---|---|
dict | object |
list, tuple | array |
str | string |
int, float | number |
None | null |
True/False | true/fase |
2.正则
正则表达式是计算机科学的一个概念,正则表通常被用来检索、替换那些符合某个模式(规则)的文本。也就是说使用正则表达式可以在字符串中匹配出你需要的字符或者字符串,甚至可以替换你不需要的字符或者字符串。
元字符
. ^ $ * + ? {} [] | ()
#大多数字母和字符会匹配它们自身,有少数特殊字符我们称为元字符,它们不能匹配自身
#子组匹配和模式重复次数等
. # 匹配除换行符之外的所有的字符
# 用于转义
d # 匹配0~9的数字
s # 匹配任意的空白符,包括空格,制表符(Tab),换行符等
w # 匹配字母或数字或下划线或汉字等
b # 表示单词的边界
. # 表示匹配点号本身
D、S、W、B # 是与小写的相反的作用
^ # 脱字符,匹配输入字符串的开始的位置
$ # 匹配输入字符串的结束位置
#匹配次数
{M,N} # M和N 为非负整数,其中M<=N 表示前面的匹配M~N次
{M,} # 表示需要匹配M次 以上
{,N} # 等价于{0~N}
{N} # 表示需要匹配N次
* # 匹配前面的子表达式零次或多次,等价于{0,}
+ # 匹配前面的子表达式一次或多次,等价于{1,}
? # 匹配前面的子表达式零次或一次,等价于{0,1}
#注:*?、+?、{n,m}? 贪婪与懒惰
#子组匹配
[ ] # 字符类,将要匹配的一类字符集放在[]里面
#例如:
[ . ? * ( ) {} ] # 匹配里面的这些符号
[0-9] # 匹配0到9的数字相当于d
[^d] # 匹配除数字以外的字符,相当于D
[a-z] # 匹配所有的小写字母
[^a-z] # 匹配非小写字母
| # 相当于或(or)分支条件
#例如:
A | B # 匹配字母A或者B 与[AB]是一样的
#分组
() #分组,将要匹配的一类字符集放在()组成一个小组
re模块常用方法
#re模块的常用方法
search() # 在一个字符串中搜索匹配正则表达式的第一个位置,返回match对象
findall() # 搜索字符串,以列表类型返回全部能匹配的子串
finditer() # 搜索字符串,返回一个匹配结果的迭代类型,每个迭代元素是match对象
sub() # 替换 类似于字符串中 replace() 方法
compile() # 编译正则表达式为模式对象
re.split() # 将一个字符串按照正则表达式匹配结果进行分割,返回列表类型
#获取 match对象 中的信息
group() # 返回匹配到的字符串
start() # 返回匹配的开始位置
end() # 返回匹配的结束位置
span() # 返回一个元组表示匹配位置(开始,结束)
作业:
'''
要求大家定义一个类:
1:这个类,必须含有字符串的所有方法
2:同时这个类,包含一个统计的方法
统计输入的字符串中,英文字母,空格,数字和其他字符出现的次数
并作为一个字典返回{’字母‘:’空格‘:’数字‘:’其他字符‘:}
'''
def string(s):
alpha=num=space=other=0
for i in s:
if i.isalpha():
alpha += 1
elif i.isspace():
space += 1
elif i.isdigit():
num += 1
else:
other += 1
dic = dict(zip(['字母','空格','数字','其他'],[alpha, space, num, other]))
return dic