天天看點

内置函數

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() 差別:
  • type() 不會認為子類是一種父類類型,不考慮繼承關系。
  • isinstance() 會認為子類是一種父類類型,考慮繼承關系。
如果要判斷兩個類型是否相同推薦使用 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__(字元串)