Python標準庫---一、內置函數(A-B-C)

上一篇文章: Python標準庫----0、簡介
下一篇文章: Python標準庫---一、內置函數(D-E-F)

Python 解釋器內置了不少函數和類型,您能夠在任什麼時候候使用它們。如下按字母表順序列出它們。segmentfault

內置函數:

clipboard.png

1. abs(x)

返回一個數的絕對值。實參能夠是整數或浮點數。若是實參是一個複數,返回它的模。

2. all(iterable)

若是 iterable 的全部元素爲真(或迭代器爲空),返回 True 。等價於:
def all(iterable):
    for element in iterable:
        if not element:
            return False
    return True

3. any(iterable)

若是 iterable的任一元素爲真則返回 True。若是迭代器爲空,返回 False。等價於:
def any(iterable):
    for element in iterable:
        if element:
            return True
    return False

4. ascii(object)

就像函數 repr(),返回一個對象可打印的字符串,可是 repr() 返回的字符串中非 ASCII 編碼的字符,會使用 x、u 和 U 來轉義。生成的字符串和 Python 2 的 repr() 返回的結果類似。

5. bin(x)

將一個整數轉變爲一個前綴爲「0b」的二進制字符串。結果是一個合法的 Python 表達式。若是 x 不是 Python 的 int 對象,那它須要定義 __index__() 方法返回一個整數。一些例子:數組

>>> bin(3)
'0b11'
>>> bin(-10)
'-0b1010'

若是不必定須要前綴「0b」,還可使用以下的方法。函數

>>> format(14, '#b'), format(14, 'b')
('0b1110', '1110')
>>> f'{14:#b}', f'{14:b}'
('0b1110', '1110')

另見 format() 獲取更多信息。測試

6. class bool([x])

返回一個布爾值,True 或者 False。 x 使用標準的 真值測試過程 來轉換。若是 x 是假的或者被省略,返回 False;其餘狀況返回 True。bool 類是 int 的子類(參見 數字類型 --- int, float, complex)。其餘類不能繼承自它。它只有 False 和 True 兩個實例(參見 布爾值)。

在 3.7 版更改: x 如今只能做爲位置參數。優化

7. breakpoint(args, *kws)

此函數會在調用時將你陷入調試器中。具體來講,它調用 sys.breakpointhook() ,直接傳遞 args 和 kws 。默認狀況下, sys.breakpointhook() 調用 pdb.set_trace() 且沒有參數。在這種狀況下,它純粹是一個便利函數,所以您沒必要顯式導入 pdb 且鍵入儘量少的代碼便可進入調試器。可是, sys.breakpointhook() 能夠設置爲其餘一些函數並被 breakpoint() 自動調用,以容許進入你想用的調試器。
3.7 新版功能.

8. class bytearray([source[, encoding[, errors]]])

返回一個新的 bytes 數組。 bytearray 類是一個可變序列,包含範圍爲 0 <= x < 256 的整數。它有可變序列大部分常見的方法,見 可變序列類型 的描述;同時有 bytes 類型的大部分方法,參見 bytes 和 bytearray 操做。

可選形參 source 能夠用不一樣的方式來初始化數組:編碼

若是是一個 string,您必須提供 encoding 參數(errors 參數還是可選的);bytearray() 會使用 str.encode() 方法來將 string 轉變成 bytes。spa

若是是一個 integer,會初始化大小爲該數字的數組,並使用 null 字節填充。debug

若是是一個符合 buffer 接口的對象,該對象的只讀 buffer 會用來初始化字節數組。調試

若是是一個 iterable 可迭代對象,它的元素的範圍必須是 0 <= x < 256 的整數,它會被用做數組的初始內容。code

若是沒有實參,則建立大小爲 0 的數組。

另見 二進制序列類型 --- bytes, bytearray, memoryview 和 bytearray 對象。

9. class bytes([source[, encoding[, errors]]])

返回一個新的「bytes」對象, 是一個不可變序列,包含範圍爲 0 <= x < 256 的整數。bytes 是 bytearray 的不可變版本 - 它有其中不改變序列的方法和相同的索引、切片操做。

所以,構造函數的實參和 bytearray() 相同。

字節對象還能夠用字面值建立,參見 字符串和字節串字面值。

另見 二進制序列類型 --- bytes, bytearray, memoryview,bytes 對象 和 bytes 和 bytearray 操做。

10. callable(object)

若是實參 object 是可調用的,返回 True,不然返回 False。若是返回真,調用仍可能會失敗;但若是返回假,則調用 object 確定會失敗。注意類是可調用的(調用類會返回一個新的實例)。若是實例的類有 __call__() 方法,則它是可調用。

3.2 新版功能: 這個函數一開始在 Python 3.0 被移除了,但在 Python 3.2 被從新加入。

11. chr(i)

返回 Unicode 碼位爲整數 i 的字符的字符串格式。例如,chr(97) 返回字符串 'a',chr(8364) 返回字符串 '€'。這是 ord() 的逆函數。

實參的合法範圍是 0 到 1,114,111(16 進製表示是 0x10FFFF)。若是 i 超過這個範圍,會觸發 ValueError 異常。

12. @classmethod

把一個方法封裝成類方法。

一個類方法把類本身做爲第一個實參,就像一個實例方法把實例本身做爲第一個實參。請用如下習慣來聲明類方法:

class C:
    @classmethod
    def f(cls, arg1, arg2, ...): ...
@classmethod 這樣的形式稱爲函數的 decorator -- 詳情參閱 函數定義。

類方法的調用能夠在類上進行 (例如 C.f()) 也能夠在實際上進行 (例如 C().f())。 其所屬類之外的類實例會被忽略。 若是類方法在其所屬類的派生類上調用,則該派生類對象會被做爲隱含的第一個參數被傳入。

類方法與 C++ 或 Java 中的靜態方法不一樣。 若是你須要後者,請參閱 staticmethod()。

想了解更多有關類方法的信息,請參閱 標準類型層級結構 。

13. compile(source, filename, mode, flags=0, dont_inherit=False, optimize=-1)

將 source 編譯成代碼或 AST 對象。代碼對象能夠被 exec() 或 eval() 執行。source 能夠是常規的字符串、字節字符串,或者 AST 對象。參見 ast 模塊的文檔瞭解如何使用 AST 對象。

filename 實參須要是代碼讀取的文件名;若是代碼不須要從文件中讀取,能夠傳入一些可辨識的值(常常會使用 '<string>')。

mode 實參指定了編譯代碼必須用的模式。若是 source 是語句序列,能夠是 'exec';若是是單一表達式,能夠是 'eval';若是是單個交互式語句,能夠是 'single'。(在最後一種狀況下,若是表達式執行結果不是 None 將會被打印出來。)

可選參數 flags 和 dont_inherit 控制在編譯 source 時要用到哪一個 future 語句。 若是二者都未提供(或都爲零)則會使用調用 compile() 的代碼中有效的 future 語句來編譯代碼。 若是給出了 flags 參數但沒有 dont_inherit (或是爲零) 則 flags 參數所指定的 以及那些不管如何都有效的 future 語句會被使用。 若是 dont_inherit 爲一個非零整數,則只使用 flags 參數 -- 在調用外圍有效的 future 語句將被忽略。

Future 語句使用比特位來指定,多個語句能夠經過按位或來指定。具體特性的比特位能夠經過 future 模塊中的 _Feature 類的實例的 compiler_flag 屬性來得到。

optimize 實參指定編譯器的優化級別;默認值 -1 選擇與解釋器的 -O 選項相同的優化級別。顯式級別爲 0 (沒有優化;__debug__ 爲真)、1 (斷言被刪除, debug 爲假)或 2 (文檔字符串也被刪除)。

若是編譯的源碼不合法,此函數會觸發 SyntaxError 異常;若是源碼包含 null 字節,則會觸發 ValueError 異常。

若是您想分析 Python 代碼的 AST 表示,請參閱 ast.parse()。

註解 在 'single' 或 'eval' 模式編譯多行代碼字符串時,輸入必須以致少一個換行符結尾。 這使 code 模塊更容易檢測語句的完整性。
警告 在將足夠大或者足夠複雜的字符串編譯成 AST 對象時,Python 解釋器有能夠由於 Python AST 編譯器的棧深度限制而崩潰。
在 3.2 版更改: 容許使用 Windows 和 Mac 的換行符。在 'exec' 模式再也不須要以換行符結尾。增長了 optimize 形參。

在 3.5 版更改: 以前 source 中包含 null 字節的話會觸發 TypeError 異常。

14. class complex([real[, imag]])

返回值爲 real + imag*1j 的複數,或將字符串或數字轉換爲複數。若是第一個形參是字符串,則它被解釋爲一個複數,而且函數調用時必須沒有第二個形參。第二個形參不能是字符串。每一個實參均可以是任意的數值類型(包括複數)。若是省略了 imag,則默認值爲零,構造函數會像 int 和 float 同樣進行數值轉換。若是兩個實參都省略,則返回 0j。

註解 當從字符串轉換時,字符串在 + 或 - 的周圍必須不能有空格。例如 complex('1+2j') 是合法的,但 complex('1 + 2j') 會觸發 ValueError 異常。
數字類型 --- int, float, complex 描述了複數類型。

在 3.6 版更改: 您可使用下劃線將代碼文字中的數字進行分組。

上一篇文章: Python標準庫----0、簡介
下一篇文章: Python標準庫---一、內置函數(D-E-F)
相關文章
相關標籤/搜索