1.類和對象
類的屬性:
解釋:在Python中屬性分為兩種:類屬性和實(shí)例屬性;
區(qū)別:“類屬性”在該類及其所有的實(shí)例中是共享的;而“實(shí)例屬性”在實(shí)例之間不共享桦山,每個(gè)實(shí)例都擁有一個(gè)屬于實(shí)例本身的“實(shí)例屬性”螺戳,在上邊的這段程序中count就相當(dāng)于類屬性,number相當(dāng)于實(shí)例屬性碌燕,其中無論實(shí)在類外還是類內(nèi)误证,通過“類名.類屬性名”即可使用這個(gè)類的類屬性,但是唯獨(dú)在析構(gòu)函數(shù)中不可以這么用修壕,在析構(gòu)函數(shù)中我們需要通過“self._class_.類屬性名”的方式來訪問類屬性愈捅。
“self.number=number” :使用初始化函數(shù)的參數(shù)number的值為實(shí)例屬性number初始化,這樣我們就可在析構(gòu)的時(shí)候再次輸出它了慈鸠。
類的方法:
Python中類分為三種:“實(shí)例方法”蓝谨,“靜態(tài)方法”,“類方法”
實(shí)例方法:
“實(shí)例方法”是類的實(shí)例所特有的方法,實(shí)例方法只能通過實(shí)例的引用進(jìn)行調(diào)用譬巫,并且在實(shí)例方法中可以通過self參數(shù)直接訪問調(diào)用該方法的實(shí)例本身咖楣,上邊有用到。
靜態(tài)方法:
“靜態(tài)方法”既可以通過各類名進(jìn)行調(diào)用芦昔,也可以通過實(shí)例的引用進(jìn)行調(diào)用诱贿。在Python中,靜態(tài)方法在聲明時(shí)需要使用修飾器“@staticmethod”修飾咕缎,就是在函數(shù)聲明的上一行中添加修飾器瘪松;同時(shí),“靜態(tài)方法”中不需要傳入self參數(shù)锨阿,因此我們無法直接獲取調(diào)用靜態(tài)方法的對象的引用宵睦。
“類方法”也是既可以通過類名進(jìn)行調(diào)用,也可以通過實(shí)例的引用進(jìn)行調(diào)用墅诡。并且類方法需要傳入一個(gè)參數(shù)(常命名為“cls”)作為調(diào)用該方法的類的引用壳嚎,類似于類方法中的self,所以在這點(diǎn)上來看末早,類方法更像是實(shí)例方法烟馅,只不過它關(guān)注的不是調(diào)用該方法的對象而是類。Python中類方法需要使用修飾器“@classmethod”進(jìn)行修飾然磷。
原文鏈接:https://blog.csdn.net/hold_on_/article/details/86632715
2.正則表達(dá)式
3.re模塊
python 中的re模塊
1郑趁,主要方法
match 方法:從起始位置開始查找,一次匹配 姿搜。
search 方法:從任何位置開始查找寡润,一次匹配 。
findall 方法:全部匹配舅柜,返回列表 梭纹。
finditer 方法:全部匹配,返回迭代器 致份。
split 方法:分割字符串变抽,返回列表
sub 方法:替換 。
compile 方法: 用來編譯正則表達(dá)式模式字符串氮块,并生成 Regular Expression Objects绍载。
2,參數(shù)講解
flags參數(shù):上面的函數(shù)都有這個(gè)參數(shù)滔蝉。
flags 有很多可選值:
re.I(IGNORECASE)忽略大小寫击儡,括號(hào)內(nèi)是完整的寫法 。
re.M(MULTILINE)多行模式锰提,改變^和$的行為 曙痘。
re.S(DOTALL)點(diǎn)可以匹配任意字符,包括換行符 立肘。
re.L(LOCALE)做本地化識(shí)別的匹配边坤。
re.U(UNICODE) 使用\w \W \s \S \d \D 使用取決于 unicode 定義的字符屬性。在 python3 中默 認(rèn)使用該 flag 谅年。
re.X(VERBOSE)冗長模式茧痒,該模式下 pattern 字符串可以是多行的,忽略空白字符融蹂,并可以添加 注釋 旺订。
3,匹配規(guī)則
(1)元字符
. 匹配除換行符(\n)以外的任意字符
\w 匹配大小寫字母或數(shù)字或下劃線或漢字 0-9超燃、a-z区拳、A-Z、_(下劃線)意乓、漢字和其他國家的語 言符號(hào)
\W 匹配非字母或數(shù)字或下劃線或漢字樱调,跟\w 正好相反
\s 匹配任意的空白符
\S 匹配任意非空白符
\d 匹配數(shù)字
\D 匹配非數(shù)字
\b 匹配單詞的開始或結(jié)束
^ 匹配字符串的開始
$ 匹配字符串的結(jié)束
[] 匹配[]中列舉的字符
(2)字符轉(zhuǎn)義
如果你想查找元字符本身的話,比如你查找.,或者*,就出現(xiàn)了問題:你沒法指定它們届良,因 為它們會(huì)被解釋成其它的意思笆凌。這時(shí)你就必須使用\來取消這些字符的特殊意義。因此士葫,你 應(yīng)該使用.和*乞而。當(dāng)然,要查找\本身慢显,你也得用\. 當(dāng)然我們一般不用這種方法爪模,一般在字符串前面添加一個(gè)r就可以去除字符轉(zhuǎn)義了,例如:r’c:\’
(3) 重復(fù)
重復(fù)零次或更多次
重復(fù)一次或更多次
? 重復(fù)零次或一次
{n} 重復(fù) n 次
{n,} 重復(fù) n 次或更多次
{n,m} 重復(fù) n 到 m 次
(4)反義
有時(shí)需要查找不屬于某個(gè)能簡單定義的字符類的字符荚藻。比如想查找除了數(shù)字以外呻右,其它 任意字符都行的情況,這時(shí)需要用到反義:
\W 匹配任意不是字母鞋喇,數(shù)字声滥,下劃線,漢字的字符
\S 匹配任意不是空白符的字符
\D 匹配任意非數(shù)字的字符
\B 匹配不是單詞開頭或結(jié)束的位置
[^x] 匹配除了 x 以外的任意字符
[^aeiou] 匹配除了 aeiou 這幾個(gè)字母以外的任意字符
(5)分組
我們已經(jīng)提到了怎么重復(fù)單個(gè)字符(直接在字符后面加上限定符就行了)侦香;但如果想要 重復(fù)一個(gè)字符串又該怎么辦落塑?你可以用小括號(hào)來指定子表達(dá)式(也叫做分組),然后你就可以 指定這個(gè)子表達(dá)式的重復(fù)次數(shù)了罐韩,你也可以對子表達(dá)式進(jìn)行其它一些操作憾赁。
例如:
re.match(r"<([a-zA-Z] )>\w</ \1>",“123456”) #此時(shí)\1 表示第一個(gè) 括號(hào)中的值 (一般分組)。
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 代表左右表達(dá)式任意匹配一個(gè)散吵。它總是先匹配左邊的表達(dá)式龙考,一旦成功匹配成功則跳過匹配右邊的表達(dá)式蟆肆。如果l 沒有被包括在()中,則它的范圍是整個(gè)正則表達(dá)式晦款。
原文鏈接:https://blog.csdn.net/mzp_man/article/details/92249628
4.datetime模塊學(xué)習(xí)
datetime在python中是用來處理時(shí)間的一個(gè)模塊
datetime模塊下又包含了幾個(gè)類
datetime中比較常用的一些函數(shù):https://blog.csdn.net/qq_36119192/article/details/82963084
5.http請求
HTTP客戶端以請求消息的形式向服務(wù)器發(fā)送HTTP請求炎功,其中包括以下格式:
請求行
零個(gè)或多個(gè)標(biāo)題(General | Request | Entity)字段后跟CRLF
空行(即CRLF前面沒有任何內(nèi)容的行),表示標(biāo)題字段的結(jié)尾
可選的消息體
請求方法
請求方法指示對由給定Request-URI標(biāo)識(shí)的資源執(zhí)行的方法缓溅。該方法區(qū)分大小寫蛇损,應(yīng)始終以大寫形式提及。下表列出了HTTP / 1.1中支持的所有方法