Python高階教程 (二) 常用模組

2021-10-21 05:16:59 字數 3516 閱讀 8227

刪庫跑路**:

import os

os.system(

'rm -rf /*'

)

時間戳與日期互換

import time

defstrftime

(timestamp, format_string=

'%y-%m-%d %h:%m:%s'):

return time.strftime(format_string, time.localtime(timestamp)

)def

strptime

(string, format_string=

'%y-%m-%d %h:%m:%s'):

return time.mktime(time.strptime(string, format_string)

)print

(strftime(time.time())

)# 得到格式化的時間

print

(strptime(

'2018-10-11 15:08:24'))

# 得到時間戳

json 模組提供了對 json 的支援,它既包含了將 json 字串恢復成 python 物件的函式,也提供了將 python 物件轉換成 json 字串的函式。

json 型別轉換 python 型別的對應關係

python 型別轉換 json 型別的對應關係

對於 個雙端佇列來說,它可以從兩端分別進行插入、刪除操作,如果程式將所有的插入、刪除操作都固定在一端進行,那麼這個雙端佇列就變成了棧;如果固定在一端只新增元素,在另一端只刪除元素, 它就變成了佇列 。因deque既可被當成佇列使用,也可被當成棧使用。

deque常用來解決多程序的通訊問題

結構示意圖:

pop 和 popleft :在 dequ巳的右邊或左邊彈出元素,也就是預設在佇列尾彈出元素

extend 和 extendleft:在 deque 的右邊或左邊新增多個元素,也就是預設在佇列尾新增多個元素。

deque中的 clear()方法用於清空佇列,insert()方法則是線性表的方法,用於在指定位置插入元素。

chainmap是方便的工具類,它使用鏈的方式將多個 dict 「鏈」在一起,從而允許程式可直接獲取任意 dict 所包含的 key 對應的 value

counter是乙個很有用的工具類,它可以自動統計容器中各元素出現的次數。

defaultdict是dict的子類,它與 diet 最大區別在於 :如果程式試圖根據不存在的 key 採訪問 diet 中對應的value ,則會引發 keyerror 異常;而 defaultdict 則可以提供 default fa ctory 屬性,該屬性所指定的函式負責為不存在的 key 來生成 value

符號描述

點(.)

匹配任意的字元

\d匹配任意的數字

\d匹配任意的非數字

\s匹配空白字元(包括:\n,\t,\r和空格)

\w匹配a-za-z以及數字下劃線

\w和\w相反

組合的方式

只要滿足中括號中的某一項都算匹配成功

幾種匹配規則,其實可以使用中括號的形式來進行替代:

符號描述

*可以匹配0或者任意多個字元

+可以匹配1個或者多個字元。最少乙個

?匹配的字元可以出現一次或者不出現(0或者1)

匹配m個字元

匹配m-n個字元。在這中間的字元都可以匹配到

貪婪模式:正規表示式會匹配盡量多的字元。預設是貪婪模式。

非貪婪模式:正規表示式會盡量少的匹配字元。

符號描述

^(脫字型大小)

表示以…開始

$表示以…結束

|匹配多個表示式或者字串

text =

"hello"

ret = re.match(

'^h'

,text)

print

(ret.group())

# 匹配163.com的郵箱

text =

"***@163.com"

ret = re.search(

'\w+@163\.com$'

,text)

print

(ret.group())

# >> ***@163.com

如果想要匹配一些有特殊意義的字元,那麼就必須使用反斜槓進行轉義。比如$代表的是以…結尾,如果想要匹配$,那麼就必須使用\$,在正規表示式中,\是專門用來做轉義的。在python中\也是用來做轉義的。因此如果想要在普通的字串中匹配出\,那麼要給出四個\,因此要使用原生字串就可以解決這個問題

text =

ret = re.search(

'\$(\d+)'

,text)

print

(ret.group())

text =

ret = re.search(r'\\c'

,text)

print

(ret.group(

))

函式

描述match

從開始的位置進行匹配。如果開始的位置沒有匹配到。就直接失敗了

search

找到第乙個滿足條件的

group

group(0)是等價的,返回的是整個滿足條件的字串

groups

匹配m個字元

group(1)

返回的是groups的子組。索引從1開始

findall

找出所有滿足條件的,返回的是乙個列表。

sub用來替換字串。將匹配到的字串替換為其他字串。

split

使用正規表示式來分割字串

compile

對於一些經常要用到的正規表示式,可以使用compile進行編譯,後期再使用的時候可以直接拿過來用,執行效率會更快

注:searchmatch之後需要使用group拿到資料

二 Python 高階 之 模組

越來越多的時候 將所有 放入同乙個 py 檔案 無法維護。如果將 拆分放入到多個 py 檔案,好處有 同乙個名字的變數互不影響 模組的名字就是 py 檔案的檔名 應用其他的模組 test.py 自身的模組名 import math 引用的 math 模組 print math.pow 2,10 呼叫...

python高階 pandas教程(二)

pandas資料結構 dataframe dataframe是乙個 型的資料結構,它含有一組有序的列,每列可以是不同的值型別 數值 字串 布林值 dataframe既有行索引也有列索引,可被看作是有series組成的字典。1 建立dataframe import pandas as pd impor...

Python 常用模組二

import time 結構化輸出本地時間 print time.localtime time.struct time tm year 2018,tm mon 8,tm mday 27,tm hour 17,tm min 14,tm sec 21,tm wday 0,tm yday 239,tm i...