Python內建函數用法!

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()

 



1. abs(x) 

  abs()函數返回數字(可爲普通型、長整型或浮點型)的絕對值。如果給出複數,返回值就是該複數的模。例如: 
>>>print abs(-2,4)
2.4
>>>print abs(4+2j)
4.472135955 
  
2. apply(function,args[,keywords])
  apply()函數將args參數應用到function上。function參數必須是可調用對象(函數、方法或其他可調用對象)。args參數必須以序列 
形式給出。列表在應用之前被轉換爲元組。function對象在被調用時,將args列表的內容分別作爲獨立的參數看待。例如: 
apply(add,(1,3,4)) 
等價於 
add(1,3,4) 
  在以列表或元組定義了一列參數,且需要將此列表參數分別作爲個個獨立參數使用的情況下,必須使用apply()函數。在要把變長參數列 
應用到已函數上時,apply()函數非常有用。
  可選項keywords參數應是個字典,字典的關鍵字是字符串。這些字符串在apply()函數的參數列末尾處給出,它們將被用作關鍵字參數。 
  
3. buffer(object[,offset[,size]])
  如果object對象支持緩存調用接口buffer()函數就爲object對象創建一個新緩存。這樣的對象包括字符串、數組和緩存。該新緩存通過使 
用從offset參數值開始知道該對象末尾的存儲片段或從offset參數值開始直到size參數給出的尺寸爲長度的存儲片段來引用object對象。如果 
沒給出任何選項參數,緩存區域就覆蓋整個序列,最終得到的緩存對象是object對象數據的只讀拷貝。
  緩存對象用於給某個對象類型創建一個更友好的接口。比如,字符串對象類型通用緩存對象而變得可用,允許逐個字節地訪問字符串中的信息。 
  
4. callable(object)
  callable()函數在object對象是可調用對象的情況下,返回真(true);否則假(false),可調用對象包括函數、方法、代碼對象、類(在調用時返回新的實例)和已經定義‘調用’方法的類實例 
  
5. chr(i)
  chr()函數返回與ASCII碼i相匹配的一個單一字符串,如下例所示:
>>>print chr(72)+chr(101)+chr(108)+chr(111)
hello
  chr()函數是ord()函數的反函數,其中ord()函數將字符串轉換回ASCII整數碼,參數i的取值應在0~255範圍內。如果參數i的取值在此範圍之外,將引發ValueError異常。 
  
6. cmp(x,y)
  cmp()函數比較x和y這兩個對象,且根據比較結果返回一個整數。如果x<y,則返回負數;如果x==y,則返回值爲0;如果x>y,則返回正數。請注意,此函數特別用來比較數值大小,而不是任何引用關係,因而有下面的結果: 
>>>a=99
>>>b=int('99')
>>>cmp(a,b)

  
7. coerce(x,y)
  coerce()函數返回一個元組,該元組由兩個數值型參數組成。此函數將兩個數值型參數轉換爲同一類型數字,其轉換規則與算術轉換規則一樣。一下是兩個例子: 
>>>a=1
>>>b=1.2 
>>>coerce(a,b)
(1.0,1.2) 
>>>a=1+2j
>>>b=4.3e10
>>>coerce(a,b)
((1+2j),(43000000000+0j)) 
  
8. compile(string,filename,kind)
  compile()函數將string編譯爲代碼對象,編譯生成的代碼對象接下來被exec語句執行,接着能利用eval()函數對其進行求值。filename參數應是代碼從其中讀出的文件名。如果內部生成文件名,filename參數值應是相應的標識符。kind參數指定string參數中所含代碼的類別,有關kind可能取值的詳細信息,請參見表8-1
舉例如下:
>>>a=compile(‘print “Hello World”’,’<string>’,’single’)
>>>exec(a)
Hello World
>>>eval(a)
Hello World
表 由compile()函數編譯的代碼的類別 
Kind取值編譯生成的代碼 
exec語句序列 
eval簡單表達式 
Single簡單交互語句 
  
9. complex(real,[image])
  Complex()函數返回一個複數,其實部爲real參數值。如果給出image參數的值,則虛部就爲image;如果默認image參數,則虛部爲0j。 
  
10. delattr(object,name)
  delattr()函數在object對象許可時,刪除object對象的name屬性,此函數等價於如下語句:
del object.attr
  而delattr()函數允許利用編程方法定義來定義object和name參數,並不是在代碼中顯示指定。 
11. dir([object])
  當沒有提供參數時,dir()函數列出在當前局部符號表中保存的名字,如下例所示:
>>>import sys
>>>dir(sys) 
  
12. divmod(a,b)
  devmod()函數返回一個元組,該元組包含a除以b的商和餘數,如下例所示:
>>>divmod(7,4)
(1,3)
  對整數而言,返回值與a/b和a%b相同。如果給出的參數值是浮點數,則結果就是(q,a%b),其中:q通常是math.floor(a/b),但是也可能比這小1,不管在什麼情況下,q*b+a%b都非常逼近a;如果a%b是個非零值,則其正負號與b相同,並且有0<=abs(a%b)<abs(b)成立。下面的例子顯示了divmod()函數是如何處理浮點數的:
>>>divmod(3.75,1.125)
(3.0,0.375)
>>>divmod(4.99,1.001)
(4.0,0.98600000000000065)
>>>divmod(-3.5,1.1)
(-4.0,0.90000000000000036) 
  
13. eval(expression[,global[,locals]])
  eval()函數將expression字符串作爲python標準表達式進行分析並求值,返回expression字符串的值,當不可調用其他可選參數時,expression訪問調用該函數的程序段的全局和局部對象。另一個選擇是:以字典形式給出全局和局部符號表(參見後面部分對global()和local()函數的論述)。
Eval()函數的返回值是被求職表達式的值,如下例所示:
>>>a=99
>>>eval(‘divmod(a,7)’)
(14,1)
任何求值操作的語法錯誤,都將引發成異常
  eval()函數還能用來編譯諸如由complie()函數創建的代碼對象,但僅當該代碼對象用“eval”模式編譯過後纔可用eval()函數編譯。
  要執行混合了語句和表達式的python任意代碼,請使用exec語句或使用execfile()函數來動態地執行含有任意代碼的文件。 
  
14.execfile(file[,globals[,locals]])
  execfile()函數與exec語句等價,不同之處在於:execfile()函數執行文件中的語句,而exec語句處理字符串。其中globals和locals參數應是字典,該字典包含文件在執行期間有效的符號表;如果locals參數省略,則所有的引用都使用globals名稱空間。如果兩個可選參數都省略,文件就訪問運行期間的當前符號表。 
  
15.filter(function,list)
  filter()函數根據function參數返回的結果是否爲真(true)來過濾list參數中的項,最後返回一個新列表,如下例所示:
a=[1,2,3, 4, 5,6,,7,8,9]
b=filter(lambda x:x>6,a)
print b
[7,8,9]
  如果function參數值爲None,就是用identity函數,list參數中的所有爲假(false)的元素都被刪除。 
  
16. flaot(x)
  float()函數將x參數轉換爲浮點數,其中:x可以是字符串,也可以是數字。 
  
17. getattr(object,name[,default])
  getattr()函數返回object的name屬性值。在語法上,以下語句:
getattr(x,’myvalue’)
等價於
x.myvalue
  如果name參數不存在,但給出defalut參數的值,則此函數就返回default參數值;否則引發AttributeError異常 
  
18. globals()
  globals()函數返回一個表示當前全局符號表的字典。這個字典通常就是當前模塊的字典。如果globals()函數是在一函數或方法中被調用,它就返回定義該函數或方法的模塊的符號表,而不是調用此函數的模塊的符號表。 
  
19. hasattr(object,name)
  如果object對象具有與name字符串相匹配的屬性,hasattr()函數返回真(true);否則返回0。 
  
20. hash(object)
  hash()函數返回關於object對象的整數散列值。如任何兩個對象比較起來是等價的,則它們的散列值是一樣的。此函數不應用於可便對向上。 
  
21.hex(x)
  hex()函數將一整數轉換爲十六進制字符串,該字符串是個有效的python表達式、 
  
22. id(object)
  id()函數返回值爲一個整數(或長整型整數)——該對象的“標識“——該標識在其對應對象的生命期內,確保是唯一的和恆定不變的。 
  
23. input([prompt])
  input()函數與eval(raw_input(prompt))等價。 
  
24. int(x,[radix])
  int()函數將使數字或字符串x轉換爲“普通”整數。如果給出radix參數的值,則radix參數值用作轉換的基數,該參數應是2~36範圍內的一個整數。 
  
25. intern(string)
  intern()函數將string加入到保留字符串的表,返回值爲保留的版本號。“保留字符串”通過指針可用,而不是一個純的字符串;因此允 
許利用指針比較代替字符串比較來進行字典關鍵字的查找,這比通常的字符串比較方法功能有所改善。
  在python名稱空間表和用於保留模塊、類或實力屬性的字典中使用的名字通常被保留用以加速腳本執行。
  保留字符串定義後不能被作爲無用單元收集,所以必須注意在大字典關鍵字集上使用保留字符串將大大增加內存需求,即使字典關鍵字應急超出了作用域。 
  
26. isinstance(object,class)
  isinstance()函數在object參數是class參數的一個實例時,返回真。函數值的確定服從普通繼承法則和子類。如果object參數是在types模塊中利用類型類定義的特殊類型的實例,也能用isinstance()函數來識別。如果class參數不是類,也不是類型對象,就引發TypeError異常 
  
27.issubclass(class1,class2)
  如果class1參數是class2參數的子類,issubclass()函數則返回真。類通常被認爲是其自身的子類。若兩個參數中任一個都不是類對象,則引發TypeError異常 
  
28. len(s)
  len()函數返回一序列(字符串、元組或列表)或字典對象的長度 
  
29. list(sequence)
  list()函數返回以列表。該列表的項及順序與sequence參數的項及順序相同,如下例所示:
>>>list(‘abc’)
[‘a’,’b’,’c’]
>>>list([1,2,3])
[1,2,3] 
  
30. locals()
  locals()函數返回表示當前局部符號表的字典 
  
31. long(x)
  long()函數將字符串或數字轉換爲長整型數,對浮點數的轉換遵循與int()相同的規則 
  
32. map(function,list,…)
  map()函數將function運用到list中的每一項上,並返回新的列表,如下例所示:
>>>a=[1,2,3,4]
>>>map(lambda x:pow(x,2),a)
[1,4,9,16]
  若提供附加的列表,則它們就被並行地提供給function。在後續無元素的列表增加None,直到所有參數列表達到相同的長度爲止。
  如果function參數值爲None,則假定爲identify函數,將使map()函數返回刪除所有爲假的參數list。如果function參數值爲None,且給定多個列表參數,返回的列表由一個個元組組成,這些元組由函數中的每一個參數列表內相同對應位置上的參數組成,如下例所示:
>>>map(None,[1,2,3,4],[4,5,6,7])
[(1,4),(2,5),(3,6),(4,7)]
  上例的結果與zip()函數產生的結果等價 
  
33. max(s,[,args…])
  當僅給定一個參數時,max()函數返回序列s的最大值。當給定一列參數時,max()函數返回給定參數的最大參數 
  
34. min(s[,args…])
  當僅給定一個參數時,min()函數返回序列s的最小值。當給定一列參數時,min()函數返回給定參數中的最小值。記住:多參數調用的序列不被遍歷,每個列表參數作爲一個整體進行比較,如:
min([1,2,3],[4,5,6])
返回
[1,2,3]
  而不是通常所想的結果爲1,要得到一個或多個列表中元素的最小值,可將所有列表連成一串,如下所示:
min([1,2,3]+[4,5,6]) 
  
35. oct(x)
  該函數將整數轉換爲八進制字符串。其結果是個有效的python表達式,如下例所示:
>>>oct(2001)
‘03721’
  請注意,返回值通常是無符號數。這樣致使oct(-1)在32位機器上產生’037777777777’的結果 
  
36. open(filename[,mode[,bufsize]])
  open()函數通過使用mode和緩存bufsize類型來打開filename標識的文件。此函數返一文件對象其中mode與系統函數fopen()使用的模式相同。如果mode參數省略,其默認取值爲r 
模式 含義
r打開用於讀
w打開用於寫
a打開用於附加(打開期間,文件位置自動移到文件末尾)
r+打開用於更新(讀和寫)
w+截斷(或清空)文件,接着打開文件用於讀寫
a+打開文件用於讀和寫,並自動改變當前爲止到文件尾
當附加任何模式選項時,以二進制模式而不是文本模式,打開文件(這種模式b僅對windows、dos和其他一些操作系統有效,對Unix、MacOS和BeOS則不管選項爲何值,以二進制模式對待所有文件) 
  open()函數的bufsize選項參數決定從文件中讀取數據時所使用的緩存的大小,如果bufsize省略,就使用系統默認的緩存容量 
bufsize值 說明
禁用緩存
行緩存
>1使用大小近似爲bufsize字符長度的緩存
<0使用系統默認 

37.ord(c)
  該函數返回由一個字符c組成的字符串的ASCII碼值或Unicode數字碼。ord()函數是chr()函數和nuichr()函數的反函數 
  
38.pow(x,y[,z])
  該函數返回以x爲底數以y爲指數的冪值。如果給出z,該函數就計算x的y次冪值被z取模的值,這樣的計算比利用:pow(x,y)%z的效率更高提供給pow()函數的參數應是數值型,並且給定的類型決定返回值的類型。如果計算得出的數值不能用給定參數值的類型表示,則引發異常, 
比如,以下對pow()的調用將失敗:
pow(2,-1)
但是
pow(2.0,-1)
是有效的 
  
39. range([start,]stop[,step])
  該函數返回數值列表,該數值列表從start開始,以step爲步長,於stop之前結束。所有的數字都應列出,並且以普通整型數返回。如果step省略,則默認取1.如果start省略,則從0開始求值。如果以兩個參數形式調用,則認作給定的參數是start和stop,如果要定義步長就必須給出全部的三個參數。下面對range()函數的調用使用了值爲正數的步長step:
>>>range(5,25,5)
[5,10,15,20]
  請注意,最後的數值是stop減去step,range()函數的返回值從小遞增到大,趨近stop的值,但不包含stop這個值
  如果step的給定值是負數,range()函數的返回值從大遞增到小,而不是遞增,stop必須比stop小;否則返回的列表爲空。下列說明了step取值爲負數的運用情況:
>>>range(10,0,-1)
[10,9,8,7,6,5,4,3,2,1]
>>>range(25,0,-5)
[25,20,15,10,5]
>>>range(0,10,-1)
[] 
  
40. raw_input([prompt])
  該函數從sys.stdin接受原始輸入並返回字符串。輸入以換行符爲結束,其中換行符在輸入字符串返回給調用者之前被去除。如果給出prompt,末尾不含換行符的prompt就被寫到sys.stdout中,並用作輸入的提示,如下例所示:
>>>name=raw_input(‘Name?’)
Name?Martin
  如果已加載readline模塊,則諸如行編輯和歷史記錄的特性在輸入期間就得到支持 
  
41. reduce(function,sequence[,initializer])
  該函數一次應用function(支持兩個函數)到sequence中的每個元素上,逐漸縮短整個語句直到爲一個單一的值。舉例,下面的語句模擬了算術運算符“!”:
reduce(lambda x,y:x*y,[1,2,3,4,5])
其結果如同執行以下計算一樣:
((((1*2)*3)*4)*5)
結果等於120
  如果給出initializer參數值,則initializer參數值就被用作序列的第一個元素,如下列所示:
>>>reduce(lambda x,y:x*y,[1,2,3,4,5],10)
1200 
  
42. reload(module)
  reload()函數將以前導入過的模塊再加載一次。重新加載(reload)包括最初導入模塊是應用的分析過程和初始化過程。這樣就允許在不退出解釋器的情況重新加載已更改的python模塊。
  使用reload()函數的若干注意事項如下:
  *如果模塊在語法上是正確的,但在初始化過程中失敗,則導入過程不能正確地將模塊的名字綁定到符號表中,這時,必須在模塊能被重新加載之前使用import()函數加載該模塊。
  *重新加載的模塊不刪除最初舊版本在符號表中的登記項。對於有恆定名字的對象和函數,這當然不是問題;但是,若對一模塊實體更改了名字,模塊名在重新加載後仍保持在符號表中
  *支持擴展模塊(它依賴與內置的或所支持的動態加載的函數庫)的重新加載,但可能是無目標的,並且確定可能導致失敗,這完全依賴於動態加載的函數庫的行爲
  *如果以模塊利用from…import…方式從另一個模塊導入對象,reload()函數不重定義導入的對象,可利用import…形式避免這個問題
  *提供類的重新加載模塊不影響所提供類的任何已存實例——已存實例將繼續使用原來的方法定義;只有該類的新實例使用新格式。這個原則對派生類同樣適用 
  
43. repr(object)
  repr()函數返回對象的字符串表示。這與將對象或屬性適用單反引號(‘)的結果是一致的。返回的字符串產生一個對象,該對象的值與將 
object傳遞給eval()函數產生的值一樣,如下例所示:
>>>dict={‘One’:1,’Two:2’,’Many’:{‘Many’:4,’ManyMany’:8}}
>>>repr(dict)
“{‘One’:1,’Many’:{‘Many’:4,’ManyMany’:8},’Two’:2}” 
  
44. round(x[,n])
  round()函數返回浮點型參數x舍入到十進制小數點後n位的值,如下例所示:
>>>round(0.4)
0.0
>>>round(0.5)
1.0
>>>round(-0.5)
-1.0
>>>round(1985,-2)
2000.0 
  
45. setattr(object,name,value)
  該函數將object參數的name屬性設置爲value參數值。setattr()函數是getattr()函數的反函數,後者僅獲得信息,以下語句:
setattr(myattr’,’new value’)
等價於
myobj.myattr=’new value’
  setattr()函數能用在這樣的情況下:屬性是通過name參數以編程方式命名,而不是顯式地命名屬性 
  
46. slice([start,]stop,[,step])
  該函數返回已序列切片(slice)對象,該對象表示由range(start,stop,step)指定的索引集。如果給出一個參數,此參數就作爲stop參數值;如果給出兩個參數,它們就作爲start和stop的參數值;任何未給出參數值的參數默認取值爲None。序列切片對象有3個屬性(start,stop,和step),這3個屬性僅僅返回要提供給slice()函數的參數 
  
47. str(object)
  返回對象的一個字符串表示。這與repr()函數相似,唯一不同之處在於:此函數返回值設計爲可打印字符串而不是與eval()函數相兼容的字符串 
  
48. tuple(object)
  tuple()函數返回一個元組,該元組的項及項的順序與sequence參數完全一樣,以下就是tuple()函數的舉例:
>>>tuple(‘abc’)
(‘a’,’b’,’c’)
>>>tuple([1,2,3])
(1,2,3) 
  
49. type(object)
  該函數返回object參數的類型。返回值是個如類型模塊所描述一樣的類型對象,舉例如下:
>>>import type
>>>if type(string)==type.StringType:
print ‘This is a string’ 
  
50. unichr(i)
  該函數返回代碼是一個整型參數i的Unicode字符的Unicode字符串。此函數等價於前面論述的chr()函數。請注意,要將Unicode字符轉換回其整數格式,可使用ord()函數;沒有uniord()函數、如果給出的整數超出0~65535這個範圍,則引發ValueError異常 
  
51. unicode(string[,encoding[,errors]]))
  該函數利用編碼格式解碼器將給定的字符串從一種格式解碼爲另一種格式。編碼的任何錯誤都用errors參數定義的字符串標記此函數特別用於在字符串和Unicode編碼格式之間轉換。默認(當不給出encoding參數值)操作是以嚴格方式將字符串解碼爲UTF-8格式,發生errors錯誤時就引發ValueError異常。有關合適的解碼列表,請見codecs模塊 
  
52.vars([object])
  該函數返回對應於當前局部符號表的字典。當給出模塊、類或實例時,vars()函數返回對應那個對象的符號表的字典。因爲結果是非定義的,所以一定不要修改返回的字典 
  
53. xrange([start,]stop[,step])
  該函數的作用與range()函數一樣,唯一的區別是:xrange()函數返回一個xrange對象。xrange()對象是個不透明對象類型,此類型返回的信息與所請求的參數列表是一致的,但是它不必存儲列表中每個獨立的元素。在創建非常巨大列表的情況下,此函數特別有用;利用xrange()函數節省下來的內存比起用range()函數是相當可觀的 
  
54. zip(seq1,…)
  zip()函數處理一系列序列,將這些序列返回一個元組列表。其中,每個元組包含了給定的每個序列的第n個元素。以下是個例子:
>>>a=[1,2,3,4]
>>>b=[5,6,7,8]
>>>zip(a,b)
[(1,5),(2,6),(3,7),(4,8)] 
  
55. 執行任意語句
  python支持3條指令,這3條指令允許執行一些任意文件或python代碼的字符串,這3條指令是exec語句、execfile()和eval()函數。 
  
56. exec語句
  exec語句被設計爲執行能使用函數和語句的任意組合的python的任何代碼片段。執行的代碼訪問相同的全局定義和局部定義的對象、類和方法或函數。以下是使用exec語句的簡單例子:
exec “print ‘Hello World’”
  也能通過提供一個包含對象及其取值的列表的字典來限定對exec語句有效的資源,如下例這樣:
exec “print message” in myglobals,mylocals
  能用globals()和locals()函數來獲得當前的字典
  請注意,exec語句執行表達式和語句、或者對表達式和語句求值,但是exec語句不返回任何值。因爲exec是語句不是函數,所以任何獲取返回值的試圖都將導致語法錯誤 
  
57. execfile()函數
  該函數執行與exec語句同樣的操作,正如前面所描述的那樣,它們的不同之處在於:execfile()函數從問幾十年中讀取被執行的語句,執行的對象不是字符串,不是代碼對象;execfile()函數的其他所有方面都與exec語句等價 
  
58. eval()函數
  該函數不允許執行任意的python語句。eval()函數被設計爲:執行一個python表達式,並返回值,如下例中一樣:
result=eval(userexpression)
  或者在語句中更顯式地給出表達式,如下例所示:
result=eval(“3+6”)

  不能使用eval()函數去執行語句,根據經驗,通常使用eval()函數開將一表達式求值並返回一個值,而在其他所有情況下則使用exec語句exec()


本文轉自:http://blog.csdn.net/yatere/article/details/7192295

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章