类和对象
类: 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。
方法:类中定义的函数。
类变量 :类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。
数据成员 :类变量或者实例变量用于处理类及其实例对象的相关的数据。
方法重写 :如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。
局部变量 :定义在方法中的变量,只作用于当前实例的类。
实例变量 :在类的声明中,属性是用变量来表示的。这种变量就称为实例变量,是在类声明的内部但是在类的其他成员方法之外声明的。
继承 :即一个派生类(derived class)继承基类(base class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。例如,有这样一个设计:一个Dog类型的对象派生自Animal类,这是模拟"是一个(is-a)"关系(例图,Dog是一个Animal)。
实例化 :创建一个类的实例,类的具体对象。
对象 :通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。
和其它编程语言相比,Python 在尽可能不增加新的语法和语义的情况下加入了类机制。Python中的类提供了面向对象编程的所有基本功能:类的继承机制允许多个基类,派生类可以覆盖基类中的任何方法,方法中可以调用基类中的同名方法。对象可以包含任意数量和类型的数据。
正则表达式,语法规则。
re模块
- re.match函数 re.match(pattern, string, flags=0)
-
通配符
- 匹配任意除换行符“\n”外的字符;
- *表示匹配前一个字符0次或无限次;
- +或 后跟?表示非贪婪匹配,即尽可能少的匹配,如 ?重复任意次,但尽可能少重复;
- .*? 表示匹配任意数量的重复,但是在能使整个匹配成功的前提下使用最少的重复。
-
re.search函数
re.search 扫描整个字符串并返回第一个成功的匹配。格式如下:
re.search(pattern, string, flags=0)
-
re.match()与re.search()的区别 re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;而re.search匹配整个字符串,直到找到一个匹配。 实例:
In: line = "Cats are smarter than dogs"
# .* 表示任意匹配除换行符(\n、\r)之外的任何单个或多个字符
matchObj = re.match( r'are (.*?) than (.*?)', line, re.M|re.I)
if matchObj:
print("matchObj.group() : ", matchObj.group())
print("matchObj.group(1) : ", matchObj.group(1))
print("matchObj.group(2) : ", matchObj.group(2))
else:
print("No match!!")
Out:No match!!
In: line = "Cats are smarter than dogs"
# .* 表示任意匹配除换行符(\n、\r)之外的任何单个或多个字符
matchObj = re.search( r'are (.*?) than (.*?)', line, re.M|re.I)
if matchObj:
print("matchObj.group() : ", matchObj.group())
print("matchObj.group(1) : ", matchObj.group(1))
print("matchObj.group(2) : ", matchObj.group(2))
else:
print("No match!!")
Out:matchObj.group() : are smarter than dogs
matchObj.group(1) : smarter
matchObj.group(2) : dogs
datetime模块学习,参考
http请求
- 安装requests模块并导入
import requests
- GET请求
import requests
r = requests.get('https://www.douban.com/')
print(r.status_code)
print(r.text)
- POST请求
r = requests.post('https://accounts.douban.com/login', data={'form_email': 'abc@example.com', 'form_password': '123456'})
print(r.text)
- cookie传递
cs = {'token': '12345', 'status': 'working'}
# timeout 设置请求超时时间
r = requests.get(url, cookies=cs, timeout=2.5)