Python3 内置函數中文版:
http://www.runoob.com/python3/python3-built-in-functions.html
英文版
https://docs.python.org/3/library/functions.html?highlight=built#ascii
abs() | dict() | help() | min() | setattr() |
all() | dir() | hex() | next() | slice() |
any() | divmod() | id() | object() | sorted() |
ascii() | enumerate() | input() | oct() | staticmethod() |
bin() | eval() | int() | open() | str() |
bool() | exec() | isinstance() | ord() | sum() |
bytearray() | filter() | issubclass() | pow() | super() |
bytes() | float() | iter() | print() | tuple() |
callable() | format() | len() | property() | type() |
chr() | frozenset() | list() | range() | vars() |
classmethod() | getattr() | locals() | repr() | zip() |
compile() | globals() | map() | reversed() | __import__() |
complex() | hasattr() | max() | round() | |
delattr() | hash() | memoryview() | set() |
abs() 函數傳回數字的絕對值。
all() 函數用于判斷給定的可疊代參數 iterable 中的所有元素是否不為 0、''、False 或者 iterable 為空,如果是傳回 True,否則傳回 False。

any() 函數用于判斷給定的可疊代參數 iterable 是否全部為空對象,如果都為空、0、false,則傳回 False,如果不都為空、0、false,則傳回 True。
ascii() 函數類似 repr() 函數, 傳回一個表示對象的字元串, 但是對于字元串中的非 ASCII 字元則傳回通過 repr() 函數使用 \x, \u 或 \U 編碼的字元。 生成字元串類似 Python2 版本中 repr() 函數的傳回值。
ascii()說白了,就是把一個資料類型,變成字元串,變成可列印的形式。
bin() 傳回一個整數 int 或者長整數 long int 的二進制表示。十進制轉二進制
bool() 函數用于将給定參數轉換為布爾類型,如果沒有參數,傳回 False。
bool 是 int 的子類。
bytearray() 方法傳回一個新位元組數組。這個數組裡的元素是可變的,并且每個元素的值範圍: 0 <= x < 256。
我們知道byte類型或者字元串是不允許修改的,如下圖:
而bytearray()是允許修改的,可變的
bytes 函數傳回一個新的 bytes 對象,該對象是一個 0 <= x < 256 區間内的整數不可變序列。它是 bytearray 的不可變版本。
callable() 函數用于檢查一個對象是否是可調用的。如果傳回True,object仍然可能調用失敗;但如果傳回False,調用對象ojbect絕對不會成功。
對于函數, 方法, lambda 函式, 類, 以及實作了 __call__ 方法的類執行個體, 它都傳回 True。
就是說後面可以加小括号()的,就是可調用的,比如說函數,類就可以調用,清單不可以。
chr() 用一個範圍在 range(256)内的(就是0~255)整數作參數,傳回一個對應的字元。
ord() 函數是 chr() 函數(對于8位的ASCII字元串)或 unichr() 函數(對于Unicode對象)的配對函數,它以一個字元(長度為1的字元串)作為參數,傳回對應的 ASCII 數值,或者 Unicode 數值,如果所給的 Unicode 字元超出了你的 Python 定義範圍,則會引發一個 TypeError 的異常。
classmethod 修飾符對應的函數不需要執行個體化,不需要 self 參數,但第一個參數需要是表示自身類的 cls 參數,可以來調用類的屬性,類的方法,執行個體化對象等。
classmethod是一個類方法,以後說
compile() 函數将一個字元串編譯為位元組代碼。編譯源代碼
complex() 函數用于建立一個值為 real + imag * j 的複數或者轉化一個字元串或數為複數。如果第一個參數為字元串,則不需要指定第二個參數。。
delattr 函數用于删除屬性。等到講面向對象的時候說。
delattr(x, 'foobar') 相等于 del x.foobar。
dict() 函數用于建立一個字典。
dir() 函數不帶參數時,傳回目前範圍内的變量、方法和定義的類型清單;帶參數時,傳回參數的屬性、方法清單。如果參數包含方法__dir__(),該方法将被調用。如果參數不包含__dir__(),該方法将最大限度地收集參數資訊。
python divmod() 函數把除數和餘數運算結果結合起來,傳回一個包含商和餘數的元組(a // b, a % b)。
在 python 2.3 版本之前不允許處理複數。
enumerate() 函數用于将一個可周遊的資料對象(如清單、元組或字元串)組合為一個索引序列,同時列出資料和資料下标,一般用在 for 循環當中。
eval() 函數用來執行一個字元串表達式,并傳回表達式的值。也可以把一個字元串變成字典
exec 執行儲存在字元串或檔案中的 Python 語句,相比于 eval,exec可以執行更複雜的 Python 代碼。
eval()隻能執行簡單的數學運算,但是exec可以執行複雜的,包括for,if等等判斷的。
filter() 函數用于過濾序列,過濾掉不符合條件的元素,傳回由符合條件元素組成的新清單。
該接收兩個參數,第一個為函數,第二個為序列,序列的每個元素作為參數傳遞給函數進行判,然後傳回 True 或 False,最後将傳回 True 的元素放到新清單中。
對于filter(),我們先來回憶下匿名函數:
注意這個時候的filter()是一個疊代器:
map() 會根據提供的函數對指定序列做映射。
第一個參數 function 以參數序列中的每一個元素調用 function 函數,傳回包含每次 function 函數傳回值的新清單。
filter()是過濾資料,map是生成清單,reduce()在py3已經不是内置函數了,在py2裡變成标準函數了,首先要導入import functools,下面函數的作用是從0加到9的值
注意這裡的reduce()不是疊代器了,而是一個資料類型,直接print就可以了。
x是結果,y是依次循環的數字0.1.2.3.....,傳回的是x的值.
float() 函數用于将整數和字元串轉換成浮點數。
Python2.6 開始,新增了一種格式化字元串的函數 str.format(),它增強了字元串格式化的功能。
基本文法是通過 {} 和 : 來代替以前的 % 。
format 函數可以接受不限個參數,位置可以不按順序。
frozenset() 傳回一個當機的集合,當機後集合不能再添加或删除任何元素。
設定一個集合:
我們a點一下,發現很多可以修改集合的方法:
如果我們把集合frozenset一下,類似元祖,就不能修改了!你在a點一下,發現所有修改删除的方法都消失了。
getattr() 函數用于傳回一個對象屬性值。這裡面向對象的時候再講
globals() 函數會以字典類型傳回目前位置的全部全局變量。傳回的目前程式的全局變量,也就是字典,key+key.valus
hasattr() 函數用于判斷對象是否包含對應的屬性。這裡面向對象的時候再講
hash() 用于擷取取一個對象(字元串或者數值等)的哈希值。即散列
哈希的作用簡單來說,就是把資料類型轉換成一串英文代碼,這個英文代碼在計算機裡就可以排序,有了排序,計算機進行查找資料的時候,就可以快速定位,定位的方法就是直接把哈希的數值清單對半,根據對半的這個數值跟需要查找的字元串的哈希數值進行比對,
大于就到後面去繼續對半,小于就到前面去繼續對半。這樣效率會非常高!
hash的值是唯一的,不管你計算多少次,hash的值都是固定的,永遠不會變化。
help() 函數用于檢視函數或子產品用途的詳細說明。
hex() 函數用于将10進制整數轉換成16進制整數。
id() 函數用于擷取對象的記憶體位址。
python input() 相等于 eval(raw_input(prompt)) ,用來擷取控制台的輸入。
raw_input() 将所有輸入作為字元串看待,傳回字元串類型。而 input() 在對待純數字輸入時具有自己的特性,它傳回所輸入的數字的類型( int, float )。
注意:input() 和 raw_input() 這兩個函數均能接收 字元串 ,但 raw_input() 直接讀取控制台的輸入(任何類型的輸入它都可以接收)。而對于 input() ,它希望能夠讀取一個合法的 python 表達式,即你輸入字元串的時候必須使用引号将它括起來,否則它會引發一個 SyntaxError 。
除非對 input() 有特别需要,否則一般情況下我們都是推薦使用 raw_input() 來與使用者互動。
注意:python3 裡 input() 預設接收到的是 str 類型。
int() 函數用于将一個字元串會數字轉換為整型。
isinstance() 函數來判斷一個對象是否是一個已知的類型,類似 type()。
isinstance() 與 type() 差別:如果要判斷兩個類型是否相同推薦使用 isinstance()。
- type() 不會認為子類是一種父類類型,不考慮繼承關系。
- isinstance() 會認為子類是一種父類類型,考慮繼承關系。
issubclass() 方法用于判斷參數 class 是否是類型參數 classinfo 的子類。
iter() 函數用來生成疊代器。
Python len() 方法傳回對象(字元、清單、元組等)長度或項目個數。
list() 方法用于将元組轉換為清單。
注:元組與清單是非常類似的,差別在于元組的元素值不能修改,元組是放在括号中,清單是放于方括号中。
locals() 函數會以字典類型傳回目前位置的全部局部變量。
下圖globals()不顯示local_var這個局部變量,它隻顯示全局變量。
對于函數, 方法, lambda 函式, 類, 以及實作了 __call__ 方法的類執行個體, 它都傳回 True。
max() 方法傳回給定參數的最大值,參數可以為序列。
memoryview() 函數傳回給定參數的記憶體檢視對象(Momory view)。
所謂記憶體檢視對象,是指對支援緩沖區協定的資料進行包裝,在不需要複制對象基礎上允許Python代碼通路。
min() 方法傳回給定參數的最小值,參數可以為序列。
next() 傳回疊代器的下一個項目。
object() python裡,一切都是對象
oct() 函數将一個整數轉換成8進制字元串。
python open() 函數用于打開一個檔案,建立一個 file 對象,相關的方法才可以調用它進行讀寫。
pow() 方法傳回 xy(x的y次方) 的值。
print() 方法用于列印輸出,最常見的一個函數。
property() 函數的作用是在新式類中傳回屬性值。以後說
pytho range() 函數可建立一個整數清單,一般用在 for 循環中。
函數文法
range(start, stop[, step])
參數說明:
- start: 計數從 start 開始。預設是從 0 開始。例如range(5)等價于range(0, 5);
- end: 計數到 end 結束,但不包括 end。例如:range(0, 5) 是[0, 1, 2, 3, 4]沒有5
- step:步長,預設為1。例如:range(0, 5) 等價于 range(0, 5, 1)
repr() 函數将對象轉化為供解釋器讀取的形式。
reversed 函數傳回一個反轉的疊代器。跟字元串裡的reversed一樣,就是把順序轉過來
round() 方法傳回浮點數x的四舍五入值。
set() 函數建立一個無序不重複元素集,可進行關系測試,删除重複資料,還可以計算交集、差集、并集等。
setattr 函數對應函數 getatt(),用于設定屬性值,該屬性必須存在。後面再說
slice() 函數實作切片對象,主要用在切片操作函數裡的參數傳遞。
sorted() 函數對所有可疊代的對象進行排序操作。
sort 與 sorted 差別:
sort 是應用在 list 上的方法,sorted 可以對所有可疊代的對象進行排序操作。
list 的 sort 方法傳回的是對已經存在的清單進行操作,而内建函數 sorted 方法傳回的是一個新的 list,而不是在原來的基礎上進行的操作。
根據字典的key進行排序:
如果想對字典的value進行排序:
python staticmethod 傳回函數的靜态方法。
該方法不強制要求傳遞參數,如下聲明一個靜态方法:
class C(object):
@staticmethod
def f(arg1, arg2, ...):
...
以上執行個體聲明了靜态方法 f,類可以不用執行個體化就可以調用該方法 C.f(),當然也可以執行個體化後調用 C().f()。
str() 函數将對象轉化為适于人閱讀的形式。
sum() 方法對系列進行求和計算。
super() 函數用于調用下一個父類(超類)并傳回該父類執行個體的方法。
super 是用來解決多重繼承問題的,直接用類名調用父類方法在使用單繼承的時候沒問題,但是如果使用多繼承,會涉及到查找順序(MRO)、重複調用(鑽石繼承)等種種問題。
MRO 就是類的方法解析順序表, 其實也就是繼承父類方法時的順序表。
tuple 函數将清單轉換為元組。。
type() 函數如果你隻有第一個參數則傳回對象的類型,三個參數傳回新的類型對象。
vars() 函數傳回對象object的屬性和屬性值的字典對象。
zip() 函數用于将可疊代的對象作為參數,将對象中對應的元素打包成一個個元組,然後傳回由這些元組組成的清單。
如果各個疊代器的元素個數不一緻,則傳回清單長度與最短的對象相同,利用 * 号操作符,可以将元組解壓為清單。
注意zip傳回的是疊代器:
如果a的數值個數更多,那麼會按最短的計算組合:
__import__() 函數用于動态加載類和函數 。
如果一個子產品經常變化就可以使用 __import__() 來動态載入。
導入子產品可以有兩種方法:__import__(字元串)