2019-08-13 TASK5

1.类和对象

类的属性:

解释:在Python中属性分为两种:类属性和实例属性;

区别:“类属性”在该类及其所有的实例中是共享的;而“实例属性”在实例之间不共享,每个实例都拥有一个属于实例本身的“实例属性”,在上边的这段程序中count就相当于类属性,number相当于实例属性,其中无论实在类外还是类内,通过“类名.类属性名”即可使用这个类的类属性,但是唯独在析构函数中不可以这么用,在析构函数中我们需要通过“self._class_.类属性名”的方式来访问类属性。

“self.number=number” :使用初始化函数的参数number的值为实例属性number初始化,这样我们就可在析构的时候再次输出它了。

类的方法:

Python中类分为三种:“实例方法”,“静态方法”,“类方法”

实例方法:

“实例方法”是类的实例所特有的方法,实例方法只能通过实例的引用进行调用,并且在实例方法中可以通过self参数直接访问调用该方法的实例本身,上边有用到。

静态方法:

“静态方法”既可以通过各类名进行调用,也可以通过实例的引用进行调用。在Python中,静态方法在声明时需要使用修饰器“@staticmethod”修饰,就是在函数声明的上一行中添加修饰器;同时,“静态方法”中不需要传入self参数,因此我们无法直接获取调用静态方法的对象的引用。

“类方法”也是既可以通过类名进行调用,也可以通过实例的引用进行调用。并且类方法需要传入一个参数(常命名为“cls”)作为调用该方法的类的引用,类似于类方法中的self,所以在这点上来看,类方法更像是实例方法,只不过它关注的不是调用该方法的对象而是类。Python中类方法需要使用修饰器“@classmethod”进行修饰。

原文链接:https://blog.csdn.net/hold_on_/article/details/86632715


2.正则表达式


3.re模块

python 中的re模块

1,主要方法

match 方法:从起始位置开始查找,一次匹配 。

search 方法:从任何位置开始查找,一次匹配 。

findall 方法:全部匹配,返回列表 。

finditer 方法:全部匹配,返回迭代器 。

split 方法:分割字符串,返回列表

sub 方法:替换 。

compile 方法: 用来编译正则表达式模式字符串,并生成 Regular Expression Objects。

2,参数讲解

flags参数:上面的函数都有这个参数。

flags 有很多可选值:

re.I(IGNORECASE)忽略大小写,括号内是完整的写法 。

re.M(MULTILINE)多行模式,改变^和$的行为 。

re.S(DOTALL)点可以匹配任意字符,包括换行符 。

re.L(LOCALE)做本地化识别的匹配。

re.U(UNICODE) 使用\w \W \s \S \d \D 使用取决于 unicode 定义的字符属性。在 python3 中默 认使用该 flag 。

re.X(VERBOSE)冗长模式,该模式下 pattern 字符串可以是多行的,忽略空白字符,并可以添加 注释 。

3,匹配规则

(1)元字符

. 匹配除换行符(\n)以外的任意字符

\w 匹配大小写字母或数字或下划线或汉字 0-9、a-z、A-Z、_(下划线)、汉字和其他国家的语 言符号

\W 匹配非字母或数字或下划线或汉字,跟\w 正好相反

\s 匹配任意的空白符

\S 匹配任意非空白符

\d 匹配数字

\D 匹配非数字

\b 匹配单词的开始或结束

^ 匹配字符串的开始

$ 匹配字符串的结束

[] 匹配[]中列举的字符

(2)字符转义

如果你想查找元字符本身的话,比如你查找.,或者*,就出现了问题:你没法指定它们,因 为它们会被解释成其它的意思。这时你就必须使用\来取消这些字符的特殊意义。因此,你 应该使用.和*。当然,要查找\本身,你也得用\. 当然我们一般不用这种方法,一般在字符串前面添加一个r就可以去除字符转义了,例如:r’c:\’

(3) 重复

重复零次或更多次

重复一次或更多次

? 重复零次或一次

{n} 重复 n 次

{n,} 重复 n 次或更多次

{n,m} 重复 n 到 m 次

(4)反义

有时需要查找不属于某个能简单定义的字符类的字符。比如想查找除了数字以外,其它 任意字符都行的情况,这时需要用到反义:

\W 匹配任意不是字母,数字,下划线,汉字的字符

\S 匹配任意不是空白符的字符

\D 匹配任意非数字的字符

\B 匹配不是单词开头或结束的位置

[^x] 匹配除了 x 以外的任意字符

[^aeiou] 匹配除了 aeiou 这几个字母以外的任意字符

(5)分组

我们已经提到了怎么重复单个字符(直接在字符后面加上限定符就行了);但如果想要 重复一个字符串又该怎么办?你可以用小括号来指定子表达式(也叫做分组),然后你就可以 指定这个子表达式的重复次数了,你也可以对子表达式进行其它一些操作。

例如:

re.match(r"<([a-zA-Z] )>\w</ \1>",“123456”) #此时\1 表示第一个 括号中的值 (一般分组)。

re.match(r"<(?P\w*)><(?P\w*)>.*</(?P=n2)></(?P=n1)>", “123456”)(命名分组)

(6)选择

l 代表选择 例如:

re.match("\d+(183|192|168)\s\1", “452183 183”) l 代表左右表达式任意匹配一个。它总是先匹配左边的表达式,一旦成功匹配成功则跳过匹配右边的表达式。如果l 没有被包括在()中,则它的范围是整个正则表达式。

原文链接:https://blog.csdn.net/mzp_man/article/details/92249628


4.datetime模块学习

datetime在python中是用来处理时间的一个模块

datetime模块下又包含了几个类

datetime中比较常用的一些函数:https://blog.csdn.net/qq_36119192/article/details/82963084


5.http请求

HTTP客户端以请求消息的形式向服务器发送HTTP请求,其中包括以下格式:

请求行

零个或多个标题(General | Request | Entity)字段后跟CRLF

空行(即CRLF前面没有任何内容的行),表示标题字段的结尾

可选的消息体

请求方法

请求方法指示对由给定Request-URI标识的资源执行的方法。该方法区分大小写,应始终以大写形式提及。下表列出了HTTP / 1.1中支持的所有方法


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容