re模块和面向对象
re模块
1.re.compile
compile(正则表达式
) - 编译正则表达式,创建正则表达式对象
2.匹配
1)fullmatch
(正则表达式,字符串
) - 让整个字符串和正常则表达式进行匹配
2)match
(正则表达式,字符串
) - 匹配字符串开头
如果匹配不到结果是
None,如果匹配成功了,结果是匹配对象
3.匹配对象
re_str
= r
'\d{3}'
result
= match
(re_str
, '123dsdsadsdsawewewqeqeqeqwe')
'''
1)获取匹配对象的字符串
匹配对象
.group
() - 获取整个正则表达式匹配到的结果
匹配对象
.group
(分组号
) - 获取正则表达式中指定的分组匹配到的结果
(分组号从
1开始
)
2)获取匹配到的子串的范围
匹配对象
.span
(分组号
) - 获取满足条件的下标范围
3)获取原字符串
匹配对象
.string
4.查找
1)search
(正则表达式,字符串
) - 查找字符串中第一个满足正则表达式的匹配对象,找到了就返回匹配对象,否则
返回
None
2)findall
(正则表达式,字符串
) - 查找字符串中所有满足正则表达式的匹配对象,返回一个列表,列表中的元素
是字符串
findall正则中如果有分组,只获取分组匹配到的内容
3)finditer
(正则表达式,字符串
) - 查找字符串中所有满足正则表达式的匹配对象,返回一个迭代器,元素就是
匹配对象
5.切割
split
(正则表达式,字符串,次数
) - 将字符串中能和正则表达式匹配的子串作为切割点,对字符串进行切割指定次
数,不写次数就是全切,返回一个列表,元素是字符串
6.替换
sub
(正则表达式,字符串
1,字符串
2) - 将字符串
2中满足组正则表达式的子串全部替换成字符串
1
编程思想
面向过程编程 函数式编程 面向对象编程
类和对象
1.什么是类、什么是对象
类就是拥有相同属性和相同对象的集合(抽象) 对象就是类的实例(具体)
2.定义类(说清楚共同的属性和功能是什么)
语法:
class 类名:
类的说明文档
类的内容
(包含属性和方法
)
说明:
class - 关键字
类名
- 自己命名,要求和变量、函数名一样 规范:驼峰式命名,并且首字母大写
类的说明文档
- 三个双引号引起来的说明性文字,说清楚类中提供的属性和功能
类的内容
- 包含属性和方法
(定义在类中的函数叫方法
)
3.创建对象
类名
()
说明:
类名
- 已经定义好的类
方法
类中的方法分为三种
:对象方法、类方法、静态方法
1)对象方法
怎么定义:直接定义类中的函数就是对象方法
特点:自带参数self
(self不用传参,系统会自动将当前对象传给self
),谁调用就指向谁
怎么调用:用对象调用
(对象
.方法名
())
2)类方法
怎么定义:定义函数前加装饰器
(@
classmethod)
特点:自带参数cls
(cls在通过类调用的时候不用传参,系统自动将当前类传给cls
)
怎么调用:用类调用
(类
.方法名
())
3)静态方法
怎么定义:在定义函数前加装饰器
(@
staticmethod)
特点:没有默认参数
怎么调用:用类调用
注意:从本质上讲,类中的所有方法都可以用对象和类调用,但不能这么做
如果用类调用对象方法,self就会变成普通参数,没有存在的价值
如果用对象调用类方法,cls还是指向类,对象没有存在的价值
4)三种方法怎么选
如果实现函数的功能需要使用对象属性就用对象方法
1.构造方法
构造方法:函数名和类名一样的,用来创建对象的方法就是构造(python中的构造方法,在定义类的时候系统已经自动创建好了)
2.init方法
__init__方法又叫初始方法,用来在创建对象的时候对对象进行初始化操作 当通过类创建对象的时候,系统会自动调用__init__方法来对创建出来的兑现进行初始化 调用构造方法创建对象的时候需不需要参数,看被自动调用的init方法需不需要参数
对象属性
1.属性:对象属性和类属性
对象属性:对象属性的值会因为对象不一样而不同 1)定义在init方法里面 2)以 self.属性名 = 值 3)通过 对象.属性名 的方式使用属性