Pyhton內建函式大全
一、數學運算類
abs(x)求絕對值
1、引數可以是整型,也可以是複數
2、若引數是複數,則返回複數的模
complex([real[, imag]]) 建立一個複數
coerce() 可以看成一個數值型別轉換函式)有兩個引數,都是數字,返回這兩個數字的一個列表,將這兩個數字的資料型別統一。如coerce(1,2j),返回(1+0j,2j)
divmod(a, b)分別取商和餘數
注意:整型、浮點型都可以
float([x])將一個字串或數轉換為浮點數。如果無引數將返回0.0
int([x[, base]]) 將一個字元轉換為int型別,base表示進位制
long([x[, base]]) 將一個字元轉換為long型別
pow(x, y[, z]) 返回x的y次冪
range([start], stop[, step]) 產生一個序列,預設從0開始
round(x[, n]) 四捨五入
sum(iterable[, start]) 對集合求和
oct(x)將一個數字轉化為8進位制
ord(x) 返回字元對應的ASC碼數字編號,如ord('A')返回65
hex(x)將整數x轉換為16進位制字串
chr(i)返回整數i對應的ASCII字元
bin(x)將整數x轉換為二進位制字串
bool([x])
將x轉換為Boolean型別,如果x預設,返回False,bool也為int的子類;
引數x:任意物件或預設;大家注意到:這裡使用了[x],說明x引數是可有可無的,如果不給任何引數則會返回False。
二、集合類操作
str([object]) 轉換為string型別
Unicode
Unicode可以支援多種語言,之前用的都是ASCII,每個英文字元都用7位二進位制數的方式儲存在計算機內,其範圍是32到126.
但是ASCII碼只能表示95個可列印的字元,後來把ASCII擴充套件到了8位,這樣就能表示223個字元了,雖然這個來表示歐美字母語言已經足夠了,但是對於像中文等語系來說就太少了。於是Unicode碼誕生了。
Unicode通過使用一個或者多個位元組來表示一個字元,這樣就突破了ASCII的限制,這樣,Unicode可以表示超過90000個字元了。
為了讓Unicode和ASCII碼值的字串看起來儘可能的相像,Python的字串從原來的簡單資料型別改變成了真正的物件,ASCII字串成了stringtype,而Unicode字串成了UnicodeType型別,他們的行為非常相近。String模組裡面都有相應的處理函式。String模組已經停止了更新,只保留了對ASXII碼的支援,string模組已經不推薦使用,在任何要跟Unicode相容的程式碼裡都不要再用該模組,Python保留該模組僅僅為了向後相容。
Python裡面預設所有字面上的字串都用ASCII編碼,可以通過在字串前面加一個‘u’字首的方式宣告Unicode字串,這個‘u’字首告訴Python後面的字串要編成Unicode字串。
把Unicode應用到實際中注意一下四點:
1 程式中出現字串時一定要加一個字首u
2 不要用str()函式,用Unicode()代替
3 不要用過時的string模組。如果傳給它非ASCII碼,它會把一切搞砸。
4 不到必須時不要在你的程式裡編解碼Unicode字元,只在你要寫入檔案或者資料庫或者網路時,才呼叫encode()函式和decode()函式。
basestring()str和unicode的超類(父類),也是抽象類,因此不能被呼叫和例項化,但可以被用來判斷一個物件是否為str或者unicode的例項,isinstance(obj, basestring)等價於isinstance(obj, (str, unicode));
bytearray([source [, encoding [, errors]]]) 返回一個byte陣列
Bytearray型別是一個可變的序列,並且序列中的元素的取值範圍為 [0 ,255]。
引數source:
如果source為整數,則返回一個長度為source的初始化陣列;
如果source為字串,則按照指定的encoding將字串轉換為位元組序列;
如果source為可迭代型別,則元素必須為[0 ,255]中的整數;
如果source為與buffer介面一致的物件,則此物件也可以被用於初始化bytearray.。
版本:在python2.6後新引入,在python3中同樣可以使用!
使用場景:當要遍歷 str 的每一個 byte 的時候就可以用 bytearray。特別是 python 3 裡面 str,因為始終用 unicode 表示,只有用 bytearray 才能訪問到字串真正的 byte。
bytes函式與bytearray函式主要區別是bytes函式產生的物件的元素不能修改,而bytearray函式產生的物件的元素可以修改。因此,除了可修改的物件函式跟bytearray函式不一樣之外,其它使用方法全部是相同的。最後它的引數定義方式也與bytearray函式是一樣的。
format(value [, format_spec])格式化輸出字串
格式化的引數順序從0開始,如“I am {0},I like {1}”
unichr(i)返回給定int型別的unicode
enumerate(sequence [, start = 0])返回一個可列舉的物件,該物件的next()方法將返回一個tuple
iter(o[, sentinel])生成一個物件的迭代器,第二個參數列示分隔符
max(iterable[, args...][key]) 返回集合中的最大值
min(iterable[, args...][key])返回集合中的最小值
dict([arg])建立資料字典
list([iterable]) 將一個集合類轉換為另外一個集合類
set()和 frozenset()函式分別用來生成可變和不可變的集合。如果不提供任何引數,預設會生成空集合。如果提供一個引數,則該引數必須是可迭代的,即一個序列或迭代器或支援迭代的一個物件,例如一個檔案或一個字典。
sorted(iterable[, cmp[, key[, reverse]]])
作用:Return a new sorted list from the items in iterable.
第一個引數是一個iterable,返回值是一個對iterable中元素進行排序後的列表(list)。
可選的引數有三個,cmp、key和reverse。
1)cmp指定一個定製的比較函式,這個函式接收兩個引數(iterable的元素),如果第一個引數小於第二個引數,返回一個負數;如果第一個引數等於第二個引數,返回零;如果第一個引數大於第二個引數,返回一個正數。預設值為None。
2)key指定一個接收一個引數的函式,這個函式用於從每個元素中提取一個用於比較的關鍵字。預設值為None。
3)reverse是一個布林值。如果設定為True,列表元素將被倒序排列。
通常來說,key和reverse比一個等價的cmp函式處理速度要快。這是因為對於每個列表元素,cmp都會被呼叫多次,而key和reverse只被呼叫一次。
3.具體的用法如下:
1)排序基礎
一個簡單的升序排列很簡單-只需要呼叫sorted()函式即可。 這個函式返回一個新的排序列表。:
>>> sorted([5,2,3,1,4])
[1,2,3,4,5]
你也可以使用list的list.sort()方法。這個方法會修改原始的list(返回值為None)。通常這個方法不如sorted()方便-如果你不需要原始的list,list.sort()方法效率會稍微高一些。
>>> a=[5,2,3,1,4]
>>> a.sort()
>>> a
[1,2,3,4,5]
另一個區別在於list.sort()方法只為list定義。而sorted()函式可以接收任何的iterable。
>>> sorted({1: 'D', 2: 'B', 3: 'B', 4: 'E', 5: 'A'}) [1, 2, 3, 4, 5]
reversed() #倒序排列函式 例如print list(reversed(['dream','a','have','I'])) 結果['I', 'have', 'a', 'dream']
tuple([iterable]) 生成一個tuple型別
xrange([start], stop[, step]) xrange()函式與range()類似,但xrnage()並不建立列表,而是返回一個xrange物件,它的行為與列表相似,但是隻在需要時才計算列表值,當列表很大時,這個特效能為我們節省記憶體
三、邏輯判斷
all(iterable)
1、集合中的元素都為真的時候為真
2、特別的,若為空串返回為True
any(iterable)
1、集合中的元素有一個為真的時候為真
2、特別的,若為空串返回為False
cmp(x, y)
如果x < y ,返回負數;x == y, 返回0;x > y,返回正數
四、反射
callable(object)檢查物件object是否可呼叫
1、類是可以被呼叫的
2、例項是不可以被呼叫的,除非類中宣告瞭__call__方法
classmethod()1、註解,用來說明這個方式是個類方法
2、類方法即可被類呼叫,也可以被例項呼叫
3、類方法類似於Java中的static方法
4、類方法中不需要有self引數
compile(source, filename, mode[, flags[, dont_inherit]])將source編譯為程式碼或者AST物件。程式碼物件能夠通過exec語句來執行或者eval()進行求值。
1、引數source:字串或者AST(Abstract Syntax Trees)物件。
2、引數 filename:程式碼檔名稱,如果不是從檔案讀取程式碼則傳遞一些可辨認的值。
3、引數model:指定編譯程式碼的種類。可以指定為 ‘exec’,’eval’,’single’。
4、引數flag和dont_inherit:這兩個引數暫不介紹
dir([object])
1、不帶引數時,返回當前範圍內的變數、方法和定義的型別列表;
2、帶引數時,返回引數的屬性、方法列表。
3、如果引數包含方法__dir__(),該方法將被呼叫。當引數為例項時。
4、如果引數不包含__dir__(),該方法將最大限度地收集引數資訊
delattr(object, name)刪除object物件名為name的屬性
eval(expression [, globals [, locals]])計算表示式expression的值
execfile(filename [, globals [, locals]])用法類似exec(),不同的是execfile的引數filename為檔名,而exec的引數為字串。
filter(function, iterable)構造一個序列,等價於[ item for item in iterable if function(item)]
1、引數function:返回值為True或False的函式,可以為None
2、引數iterable:序列或可迭代物件
getattr(object, name [, defalut])獲取一個類的屬性
globals()返回一個描述當前全域性符號表的字典
hasattr(object, name)判斷物件object是否包含名為name的特性
hash(object)如果物件object為雜湊表型別,返回物件object的雜湊值
id(object)返回物件的唯一標識
isinstance(object, classinfo)判斷object是否是class的例項
issubclass(class, classinfo)判斷是否是子類
len(s) 返回集合長度
locals() 返回當前的變數列表
map(function, iterable, ...) 遍歷每個元素,執行function操作
memoryview(obj) 返回一個記憶體映象型別的物件
next(iterator[, default]) 類似於iterator.next()
object() 基類
property([fget[, fset[, fdel[, doc]]]]) 屬性訪問的包裝類,設定後可以通過c.x=value等來訪問setter和getter
reduce(function, iterable[, initializer]) 合併操作,從第一個開始是前兩個引數,然後是前兩個的結果與第三個合併進行處理,以此類推
reload(module) 重新載入模組
setattr(object, name, value)設定屬性值
repr(object) 將一個物件變幻為可列印的格式
slice() 返回一個切片物件,它表示的是range(start, stop, step)指定的範圍。start和step引數預設為None。切片物件有隻讀資料屬性start,stop和step,它只是返回引數值(或預設)。
staticmethod宣告靜態方法,是個註解
super(type[, object-or-type]) 引用父類
type(object)返回該object的型別
vars([object]) 返回物件的變數,若無引數與dict()方法類似
bytearray([source [, encoding [, errors]]])返回一個byte陣列
1、如果source為整數,則返回一個長度為source的初始化陣列;
2、如果source為字串,則按照指定的encoding將字串轉換為位元組序列;
3、如果source為可迭代型別,則元素必須為[0 ,255]中的整數;
4、如果source為與buffer介面一致的物件,則此物件也可以被用於初始化bytearray.
zip([iterable, ...])
它接受一系列可迭代的物件作為引數,將物件中對應的元素打包成一個個tuple(元組),然後返回由這些tuples組成的list(列表)。若傳入引數的長度不等,則返回list的長度和引數中長度最短的物件相同。利用*號操作符,可以將list unzip(解壓)。
五、IO操作
file(filename [, mode [, bufsize]])file型別的建構函式,作用為開啟一個檔案,如果檔案不存在且mode為寫或追加時,檔案將被建立。新增‘b’到mode引數中,將對檔案以二進位制形式操作。新增‘+’到mode引數中,將允許對檔案同時進行讀寫操作
1、引數filename:檔名稱。
2、引數mode:'r'(讀)、'w'(寫)、'a'(追加)。
3、引數bufsize:如果為0表示不進行緩衝,如果為1表示進行行緩衝,如果是一個大於1的數表示緩衝區的大小 。
input([prompt]) 獲取使用者輸入
推薦使用raw_input,因為該函式將不會捕獲使用者的錯誤輸入
open(name[, mode[, buffering]]) 開啟檔案
與file有什麼不同?推薦使用open
print列印函式
raw_input([prompt]) 設定輸入,輸入都是作為字串處理
六、其他
help()--幫助資訊
apply()、buffer()、coerce()、intern()---這些是過期的內建函式,故不說明
七、後記
內建函式,一般都是因為使用頻率比較頻繁或是是元操作,所以通過內建函式的形式提供出來,通過對python的內建函式分類分析可以看出來:基本的資料操作基本都是一些數學運算(當然除了加減乘除)、邏輯操作、集合操作、基本IO操作,然後就是對於語言自身的反射操作,還有就是字串操作,也是比較常用的,尤其需要注意的是反射操作。
本文轉自 jvrmusic520 51CTO部落格,原文連結:http://blog.51cto.com/linuxtech/1742712
相關文章
- Python 內建函式大全Python函式
- Python內建函式大全,快來看看!!Python函式
- Python 字串 String 內建函式大全(1)Python字串函式
- Python 字串 String 內建函式大全(2)Python字串函式
- 內建函式函式
- webgl內建函式--通用函式Web函式
- hive內建函式Hive函式
- MySQL 內建函式MySql函式
- js內建函式JS函式
- php 內建函式PHP函式
- webgl內建函式--指數函式Web函式
- python常用內建函式Python函式
- Python內建函式(一)Python函式
- Python內建函式(二)Python函式
- 1.5.5 Python內建函式Python函式
- python 常用內建函式Python函式
- Python內建函式示例Python函式
- 18. 內建函式函式
- python內建函式——sortedPython函式
- webgl內建函式--幾何函式與矩陣函式Web函式矩陣
- webgl內建函式--向量函式與紋理查詢函式Web函式
- Hive函式(內建函式+自定義標準函式UDF)Hive函式
- python內建函式 map/reducePython函式
- day13 內建函式函式
- python合集———內建函式合集Python函式
- python的部分內建函式Python函式
- 12.4、python內建函式—sortedPython函式
- 12.2、python內建函式—formatPython函式ORM
- c++內建函式物件C++函式物件
- python高階內建函式Python函式
- c++中內建函式C++函式
- python常見內建函式Python函式
- python 66個內建函式Python函式
- python內建函式-eval()函式與exec()函式的區別Python函式
- Hive函式大全Hive函式
- mysql函式大全MySql函式
- PHP函式大全PHP函式
- webgl內建函式--角度和三角函式Web函式
- 幾個重要的內建函式函式