1. 程式人生 > >python3內建函式整理

python3內建函式整理

python3內建函式
按功能來分,簡單分了幾類
一、數學計算相關
abs、complex、divmod、float、pow、round
(3, 1) = divmod(7, 2) 把除數和餘數運算結果結合起來,返回一個包含商和餘數的元組
float() 函式用於將整數和字串轉換成浮點數。
pow() 方法返回 (x的y次方) 的值。

max、min、sum

二、邏輯判斷
all、any、bool、callable
bool() 函式用於將給定引數轉換為布林型別,如果沒有引數,返回 False。bool 是 int 的子類。
callable() 函式用於檢查一個物件是否是可呼叫的。如果返回True,object仍然可能呼叫失敗;但如果返回False,呼叫物件ojbect絕對不會成功。對於函式, 方法, lambda 函式, 類, 以及實現了 call

方法的類例項, 它都返回 True。
all:
注意:對all來說,空元組、空列表返回值為True

三、型別轉換
轉換成數字:
int() 函式用於將一個字串或數字轉換為整型。

ascii碼的數字和字元互轉:chr、ord
chr(int) 用0~255的整數作引數,返回一個對應的ascii字元。i – 可以是10進位制也可以是16進位制的形式的數字。
ord以一個字元(長度為1的字串)作為引數,返回對應的 ASCII 數值。ordinal

轉換成字串格式:
bin(int) :將一個整數 int 或者長整數 long int 轉換成二進位制後字串輸出。
oct() 函式將一個整數轉換成8進位制字串輸出。
hex() 函式用於將10進位制整數轉換成16進位制,以字串形式表示。

str、expr、ascii都有相似之處
儘管這兩者都返回的字串,但str返回對人類友好的形式。在 Python 中要將某一型別的變數或者常量轉換為字串物件通常有兩種方法。print 語句結合 str() 函式實際上是呼叫了物件的 __str__方法來輸出結果。
而 print 結合 repr() 實際上是呼叫物件的__repr__方法輸出結果。repr() 的輸出追求明確性,除了物件內容,還需要展示出物件的資料型別資訊,適合開發和除錯階段使用。
通常情況下obj==eval(repr(obj))這個等式是成立的。而str()函式這沒有這個功能。
ascii() 函式類似 repr() 函式, 返回一個表示物件的字串, 但是對於字串中的非 ASCII 字元則返回通過 repr() 函式使用 \x, \u 或 \U 編碼的字元。

二進位制序列型別:
用於處理二進位制資料的核心內建型別是bytes和bytearray。它們由memoryview支援,它使用buffer protocol訪問其他二進位制物件的記憶體,而無需進行復制。
bytes將一個列表、字串等轉換成一個新的 bytes 物件,以位元組流的形式轉換成對應的ascii值。如果是多位元組的字元就一個個位元組展示出來。
bytearray() 是bytes的可變版本,可以通過切片改變其值。
memoryview
memoryview() 函式返回給定引數的記憶體檢視(Momory view)。
所謂記憶體檢視,是指對支援緩衝區協議的資料進行包裝,在不需要複製物件基礎上允許Python程式碼訪問。
memoryview可以使用不同的方式讀取和操作(重點)同一塊記憶體,並且原有的記憶體位元組不會隨意移動。

四、可作為裝飾器的函式
classmethod、staticmethod、property
類方法,靜態方法,屬性

五、作用於類物件
delattr、getattr、hasattr、setattr
delattr(object, name)

hasattr() 函式用於判斷物件是否包含對應的屬性。
hasattr(object, name)
如果物件有該屬性返回 True,否則返回 False。

getattr() 函式用於返回一個物件屬性值。
getattr(object, name[, default])
default – 預設返回值,如果不提供該引數,在沒有對應屬性時,將觸發 AttributeError。

setattr() 函式對應函式 getattr(),用於設定屬性值,該屬性若不存在則建立。
setattr(object, name, value)
無返回值

isinstance、issubclass
一個是例項物件,一個是class。

dir、vars
dir()和vars()的區別就是
dir()只打印屬性(屬性,屬性…),返回列表
而vars()則列印屬性與屬性的值(屬性:屬性值…),返回一個dict

object、type、super
super:鑽石繼承,class.__mro__可以顯示類的MRO順序

六、執行程式碼
compile、eval、exec
將source編譯成程式碼或AST物件。程式碼物件可以由exec()或eval()執行。source可以是普通字串,位元組字串或AST物件。
eval 返回計算結果
exec 只執行,不返回計算結果
exec 執行儲存在字串或檔案中的 Python 語句,相比於 eval,exec可以執行更復雜的 Python 程式碼或者code物件。
拓展閱讀:Python3原始碼—Code物件與pyc檔案

基本資料型別
dict、list、set、tuple、frozenset
enumerate、zip
zip:zip([1,2,3],[4,5,6]) ## zip object [(1, 4), (2, 5), (3, 6)]
enumerate:enumerate([a,b,c],6) ## enumerate object [(6,a),(7,b),(8,c)]

輸入輸出系列
format、input、print

迭代器相關係列
iter、next、range、reversed、sorted、map、filter
iter(一個實現了iter方法的例項物件) 函式用來將可迭代物件生成迭代器。呼叫__iter__方法。大部分時候不用顯式呼叫iter。
next() 返回迭代器的下一個專案。呼叫__next__方法
range() 函式返回一個迭代器
reversed 函式返回一個反轉的迭代器。reversed(seq) seq – 要轉換的序列,可以是 tuple, string, list 或 range。
sorted 可以對所有可迭代的物件進行排序操作。sort 是應用在 list 上的方法。
map(function, iterable, …) 返回return的值
filter(function, iterable) 用於過濾序列,過濾掉不符合條件的元素,返回一個迭代器物件。返回return不為false的值

拓展閱讀:可迭代物件 vs 迭代器 vs 生成器
大部分容器都是可迭代的,但是還有其他一些物件也可以迭代,例如,檔案物件以及管道物件等等

通用功能系列
len、help、open

其他:
globals、locals、雙下import
hash、id

slice
slice() 函式實現切片物件,主要用在切片操作函式裡的引數傳遞。