Python基礎語法十五 re模組和物件導向

2021-10-07 22:39:24 字數 3534 閱讀 4884

compile(正規表示式) - 編譯正規表示式,建立正規表示式物件

re_obj =

compile

(r'\d'

)re_obj.fullmatch(

'234'

)

1.fullmatch(正規表示式, 字串) - 讓整個字串和正規表示式進行匹配

2.match(正規表示式, 字串) - 匹配字串開頭

如果匹配失敗,結果是none,如果匹配成功,結果是匹配物件

re_str = r'(\d\d)-([a-z])'

print

(match(re_str,

'34-asd'

))

1獲取匹配到的字串

匹配物件.group() - 獲取整個正規表示式匹配到的結果

print(result.group())

匹配物件.group(分組號) - 獲取正規表示式中指定的分組匹配到的結果(分組號從1開始)

2獲取匹配到的子串的範圍

print(result.span(1))

3獲取原字串

print(result.string)

4查詢:

1)search(正規表示式, 字串) - 在字串中查詢第乙個能和正規表示式匹配的子串。如果找到返回匹配物件,找不到返回none

2)findall(正規表示式,字串) - 獲取字串中所有滿足正規表示式的子串,返回乙個列表,列表中的元素是字串,正則中如果有分組,只獲取分組匹配到的內容

3)finditer(正規表示式,字串) - 獲取字串中所有滿足正規表示式的子串,返回乙個迭代器,迭代器中的元素是匹配物件

str1 =

'as****fw2442adafsaff324e2e23re3'

print

(search(r'\d+'

, str1)

)print

(findall(r'\d+[a-z]'

, str1)

)print

(list

(finditer(r'\d+[a-z]'

, str1)

))

5.切割

split(正規表示式, 字串, 切割次數) - 將字串中能和正規表示式匹配的子串作為切割點,對字串進行切割,返回值是列表,列表中的元素是字串

6.字串的替換

sub(正規表示式, 字串1, 字串2, 替換次數) - 將字串2中滿足正規表示式的子串全部替換成字串1

1.什麼是類

類就是擁有相同屬性和相同功能的物件的集合

物件就是類的例項

2.定義類(說清楚共同屬性和功能是哪些)

語法:class 類名:

類的說明文件

類的內容(包含屬性和方法)

說明:class - 關鍵字

類名 - 程式設計師自己命名

要求:識別符號,不能是關鍵字

規範:駝峰式命名,並且首字母大寫,見名知義,不要用系統的函式名類名和模組名

類的說明文件 - 說清楚類的功能,用三個雙引號引起來的說明文字

類的內容 - 主要包含屬性和方法(定義在類中的函式叫方法)

pep8命名:

student_name = 『zhang』

駝峰式命名

studentname = 『張』

3.定義物件(建立物件)

語法:類名()

說明:類名:類名對應的類是已經定義好的類的類名

1.方法(定義在類中的函式)

類中的方法分三種:物件方法、類方法、靜態方法

1)物件方法

定義:直接定義在類中的函式就是物件方法

特點:自帶引數self,self在物件呼叫的時候不用傳參,系統會自動將當前物件傳給self

怎麼呼叫:用物件來呼叫(物件.方法名())

2)類方法

定義:定義函式前加裝飾器@classmethod

特點:自帶引數cls(cls在通過類呼叫的時候不用傳參)

怎麼呼叫:用類呼叫(類.方法名())

3)靜態方法

定義:在定義函式前加裝飾器@staticmethod

特點:沒有預設引數

怎麼呼叫:用類呼叫

4)物件方法、類方法和物件方法怎麼選

如果實現函式功能需要用到函式屬性時候用物件方法

class

dog:

# eat是物件方法,

defeat

(self)

:print

('gou'

) @classmethod

# count就是乙個類方法

defcount

(cls)

:print

('狗數量是100'

) @staticmethod

deffun2()

:print

('靜態方法'

)# 建立物件

dog1 = dog(

)# 物件呼叫

dog1.eat(

)# 類呼叫

dog.count(

)# 類呼叫靜態方法

dog.fun2(

)# 從本質上講,型別的所有方法都可以用物件和類呼叫,但是不能這麼做

# 如果用類呼叫物件方法,self就變成普通引數,沒有存在價值

# 用物件呼叫類方法時候,cls指向的還是類(不會指向物件) 說白了就是沒啥區別就是麻煩了一步

#

1.構造方法

構造方法:函式名和類名是一樣的,用來建立物件的方法就是構造方法(是系統自動建立的)

2.init方法

init__方法又叫初始化方法,用來在建立物件的時候對物件進行初始化操作

當我們通過類建立物件的時候系統會自動呼叫__init__方法來對建立出的物件進行初始化

呼叫構造方法建立物件時候,需不需要引數,需要幾個,看被呼叫的__int

class person:

def __init__(self, a, b):

print('初始化方法', a, b)

# person()

p1 = person(1, 2)

屬性:物件屬性和類屬性

物件屬性:物件屬性的值會因為物件不同而不一樣

a.物件屬性定義在init方法中

b.以 self.屬性名 = 值 的形式存在

class

person

:def

__init__

(self, name, age, gender)

: self.name = name

self.age = age

self.gender = gender

p1 = person(

'張三',18

,'男'

)print

(p1.name, p1.age, p1.gender)

python基礎 re使用

以乙個帶檔案操作的例子說明 目標 開啟乙個檔案,提取 中的內容,儲存在乙個新的檔案裡 涉及到的一些操作 序號操作 1檔案操作codecs.open 2正規表示式re模組的使用 上 import linecache import re import codecs filename lolstatist...

python基礎 Re正則

正規表示式 regular expression,簡稱re 正規表示式是對字串操作的 種邏輯公式,就是 事先定義好的 些特定字元 及這些特定字元的組合,組成 個 規則字串 這個 規則字串 來表達對字串的 種過濾邏輯。字串的匹配查詢 re模組中的findall函式可以對指定的字串進行遍歷匹配,獲取字串...

python中re庫基礎

正規表示式 基礎使用方法 data re.compile d re.i re.s 建立正規表示式物件 第二個引數代表忽略大小寫以及換行 str data.findall zfc 進行字串匹配 返回是列表形式 re類 正規表示式 萬能匹配 zfc asdkfgjosadjfo1234asdtfgw e...