1. abs(x)
abs()函數(shù)返回?cái)?shù)字(可為普通型、長(zhǎng)整型或浮點(diǎn)型)的絕對(duì)值笤喳。如果給出復(fù)數(shù),返回值就是該復(fù)數(shù)的模。例如:
>>>print abs(-2,4)
2.4
>>>print abs(4+2j)
4.472135955
2. apply(function,args[,keywords])
apply()函數(shù)將args參數(shù)應(yīng)用到function上愉舔。function參數(shù)必須是可調(diào)用對(duì)象(函數(shù)、方法或其他可調(diào)用對(duì)象)伙菜。args參數(shù)必須以序列形式給出轩缤。列表在應(yīng)用之前被轉(zhuǎn)換為元組。function對(duì)象在被調(diào)用時(shí)贩绕,將args列表的內(nèi)容分別作為獨(dú)立的參數(shù)看待火的。例如:
apply(add,(1,3,4))
等價(jià)于
add(1,3,4)
在以列表或元組定義了一列參數(shù),且需要將此列表參數(shù)分別作為個(gè)個(gè)獨(dú)立參數(shù)使用的情況下淑倾,必須使用apply()函數(shù)馏鹤。在要把變長(zhǎng)參數(shù)列應(yīng)用到已函數(shù)上時(shí),apply()函數(shù)非常有用娇哆。
可選項(xiàng)keywords參數(shù)應(yīng)是個(gè)字典湃累,字典的關(guān)鍵字是字符串。這些字符串在apply()函數(shù)的參數(shù)列末尾處給出碍讨,它們將被用作關(guān)鍵字參數(shù)治力。
3. buffer(object[,offset[,size]])
如果object對(duì)象支持緩存調(diào)用接口buffer()函數(shù)就為object對(duì)象創(chuàng)建一個(gè)新緩存。這樣的對(duì)象包括字符串勃黍、數(shù)組和緩存琴许。該新緩存通過使用從offset參數(shù)值開始知道該對(duì)象末尾的存儲(chǔ)片段或從offset參數(shù)值開始直到size參數(shù)給出的尺寸為長(zhǎng)度的存儲(chǔ)片段來引用object對(duì)象。如果沒給出任何選項(xiàng)參數(shù)溉躲,緩存區(qū)域就覆蓋整個(gè)序列榜田,最終得到的緩存對(duì)象是object對(duì)象數(shù)據(jù)的只讀拷貝益兄。
緩存對(duì)象用于給某個(gè)對(duì)象類型創(chuàng)建一個(gè)更友好的接口。比如箭券,字符串對(duì)象類型通用緩存對(duì)象而變得可用净捅,允許逐個(gè)字節(jié)地訪問字符串中的信息。
4. callable(object)
callable()函數(shù)在object對(duì)象是可調(diào)用對(duì)象的情況下辩块,返回真(true)蛔六;否則假(false),可調(diào)用對(duì)象包括函數(shù)废亭、方法国章、代碼對(duì)象、類(在調(diào)用時(shí)返回新的實(shí)例)和已經(jīng)定義‘調(diào)用’方法的類實(shí)例
5. chr(i)
chr()函數(shù)返回與ASCII碼i相匹配的一個(gè)單一字符串豆村,如下例所示:
>>>print chr(72)+chr(101)+chr(108)+chr(111)
hello
chr()函數(shù)是ord()函數(shù)的反函數(shù)液兽,其中ord()函數(shù)將字符串轉(zhuǎn)換回ASCII整數(shù)碼,參數(shù)i的取值應(yīng)在0~255范圍內(nèi)掌动。如果參數(shù)i的取值在此范圍之外四啰,將引發(fā)ValueError異常。
6. cmp(x,y)
cmp()函數(shù)比較x和y這兩個(gè)對(duì)象粗恢,且根據(jù)比較結(jié)果返回一個(gè)整數(shù)柑晒。如果xy,則返回正數(shù)眷射。請(qǐng)注意匙赞,此函數(shù)特別用來比較數(shù)值大小,而不是任何引用關(guān)系妖碉,因而有下面的結(jié)果:
>>>a=99
>>>b=int('99')
>>>cmp(a,b)
0
7. coerce(x,y)
coerce()函數(shù)返回一個(gè)元組罚屋,該元組由兩個(gè)數(shù)值型參數(shù)組成。此函數(shù)將兩個(gè)數(shù)值型參數(shù)轉(zhuǎn)換為同一類型數(shù)字嗅绸,其轉(zhuǎn)換規(guī)則與算術(shù)轉(zhuǎn)換規(guī)則一樣。一下是兩個(gè)例子:
>>>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()函數(shù)將string編譯為代碼對(duì)象撕彤,編譯生成的代碼對(duì)象接下來被exec語(yǔ)句執(zhí)行鱼鸠,接著能利用eval()函數(shù)對(duì)其進(jìn)行求值。filename參數(shù)應(yīng)是代碼從其中讀出的文件名羹铅。如果內(nèi)部生成文件名蚀狰,filename參數(shù)值應(yīng)是相應(yīng)的標(biāo)識(shí)符。kind參數(shù)指定string參數(shù)中所含代碼的類別职员,有關(guān)kind可能取值的詳細(xì)信息麻蹋,請(qǐng)參見表8-1
舉例如下:
>>>a=compile(‘print “Hello World”’,’’,’single’)
>>>exec(a)
Hello World
>>>eval(a)
Hello World
表 由compile()函數(shù)編譯的代碼的類別
Kind取值 編譯生成的代碼
exec 語(yǔ)句序列
eval 簡(jiǎn)單表達(dá)式
Single 簡(jiǎn)單交互語(yǔ)句
9. complex(real,[image])
Complex()函數(shù)返回一個(gè)復(fù)數(shù),其實(shí)部為real參數(shù)值焊切。如果給出image參數(shù)的值扮授,則虛部就為image芳室;如果默認(rèn)image參數(shù),則虛部為0j刹勃。
10. delattr(object,name)
delattr()函數(shù)在object對(duì)象許可時(shí)堪侯,刪除object對(duì)象的name屬性,此函數(shù)等價(jià)于如下語(yǔ)句:
del object.attr
而delattr()函數(shù)允許利用編程方法定義來定義object和name參數(shù)荔仁,并不是在代碼中顯示指定伍宦。
11. dir([object])
當(dāng)沒有提供參數(shù)時(shí),dir()函數(shù)列出在當(dāng)前局部符號(hào)表中保存的名字乏梁,如下例所示:
>>>import sys
>>>dir(sys)
12. divmod(a,b)
devmod()函數(shù)返回一個(gè)元組次洼,該元組包含a除以b的商和余數(shù),如下例所示:
>>>divmod(7,4)
(1,3)
對(duì)整數(shù)而言遇骑,返回值與a/b和a%b相同卖毁。如果給出的參數(shù)值是浮點(diǎn)數(shù),則結(jié)果就是(q,a%b)质蕉,其中:q通常是math.floor(a/b)势篡,但是也可能比這小1,不管在什么情況下模暗,q*b+a%b都非常逼近a禁悠;如果a%b是個(gè)非零值,則其正負(fù)號(hào)與b相同兑宇,并且有0<=abs(a%b)
>>>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()函數(shù)將expression字符串作為python標(biāo)準(zhǔn)表達(dá)式進(jìn)行分析并求值碍侦,返回expression字符串的值,當(dāng)不可調(diào)用其他可選參數(shù)時(shí)隶糕,expression訪問調(diào)用該函數(shù)的程序段的全局和局部對(duì)象瓷产。另一個(gè)選擇是:以字典形式給出全局和局部符號(hào)表(參見后面部分對(duì)global()和local()函數(shù)的論述)。
Eval()函數(shù)的返回值是被求職表達(dá)式的值枚驻,如下例所示:
>>>a=99
>>>eval(‘divmod(a,7)’)
(14,1)
任何求職操作的語(yǔ)法錯(cuò)誤濒旦,都將引發(fā)成異常
eval()函數(shù)還能用來編譯諸如由complie()函數(shù)創(chuàng)建的代碼對(duì)象,但僅當(dāng)該代碼對(duì)象用“eval”模式編譯過后才可用eval()函數(shù)編譯再登。
要執(zhí)行混合了語(yǔ)句和表達(dá)式的python任意代碼尔邓,請(qǐng)使用exec語(yǔ)句或使用execfile()函數(shù)來動(dòng)態(tài)地執(zhí)行含有任意代碼的文件。
14.execfile(file[,globals[,locals]])
execfile()函數(shù)與exec語(yǔ)句等價(jià)锉矢,不同之處在于:execfile()函數(shù)執(zhí)行文件中的語(yǔ)句梯嗽,而exec語(yǔ)句處理字符串。其中g(shù)lobals和locals參數(shù)應(yīng)是字典沽损,該字典包含文件在執(zhí)行期間有效的符號(hào)表灯节;如果locals參數(shù)省略,則所有的引用都使用globals名稱空間。如果兩個(gè)可選參數(shù)都省略炎疆,文件就訪問運(yùn)行期間的當(dāng)前符號(hào)表卡骂。
15.filter(function,list)
filter()函數(shù)根據(jù)function參數(shù)返回的結(jié)果是否為真(true)來過濾list參數(shù)中的項(xiàng),最后返回一個(gè)新列表磷雇,如下例所示:
a=[1,2,3, 4, 5,6,,7,8,9]
b=filter(lambda x:x>6,a)
print b
[7,8,9]
如果function參數(shù)值為None偿警,就是用identity函數(shù),list參數(shù)中的所有為假(false)的元素都被刪除唯笙。
16. flaot(x)
float()函數(shù)將x參數(shù)轉(zhuǎn)換為浮點(diǎn)數(shù)螟蒸,其中:x可以是字符串,也可以是數(shù)字崩掘。
17. getattr(object,name[,default])
getattr()函數(shù)返回object的name屬性值七嫌。在語(yǔ)法上,以下語(yǔ)句:
getattr(x,’myvalue’)
等價(jià)于
x.myvalue
如果name參數(shù)不存在苞慢,但給出defalut參數(shù)的值诵原,則此函數(shù)就返回default參數(shù)值;否則引發(fā)AttributeError異常
18. globals()
globals()函數(shù)返回一個(gè)表示當(dāng)前全局符號(hào)表的字典挽放。這個(gè)字典通常就是當(dāng)前模塊的字典绍赛。如果globals()函數(shù)是在一函數(shù)或方法中被調(diào)用,它就返回定義該函數(shù)或方法的模塊的符號(hào)表辑畦,而不是調(diào)用此函數(shù)的模塊的符號(hào)表吗蚌。
19. hasattr(object,name)
如果object對(duì)象具有與name字符串相匹配的屬性,hasattr()函數(shù)返回真(true)纯出;否則返回0蚯妇。
20. hash(object)
hash()函數(shù)返回關(guān)于object對(duì)象的整數(shù)散列值。如任何兩個(gè)對(duì)象比較起來是等價(jià)的暂筝,則它們的散列值是一樣的箩言。此函數(shù)不應(yīng)用于可便對(duì)向上。
21.hex(x)
hex()函數(shù)將一整數(shù)轉(zhuǎn)換為十六進(jìn)制字符串焕襟,該字符串是個(gè)有效的python表達(dá)式陨收、
22. id(object)
id()函數(shù)返回值為一個(gè)整數(shù)(或長(zhǎng)整型整數(shù))——該對(duì)象的“標(biāo)識(shí)“——該標(biāo)識(shí)在其對(duì)應(yīng)對(duì)象的生命期內(nèi),確保是唯一的和恒定不變的鸵赖。
23. input([prompt])
input()函數(shù)與eval(raw_input(prompt))等價(jià)务漩。
24. int(x,[radix])
int()函數(shù)將使數(shù)字或字符串x轉(zhuǎn)換為“普通”整數(shù)。如果給出radix參數(shù)的值卫漫,則radix參數(shù)值用作轉(zhuǎn)換的基數(shù),該參數(shù)應(yīng)是2~36范圍內(nèi)的一個(gè)整數(shù)肾砂。
25. intern(string)
intern()函數(shù)將string加入到保留字符串的表列赎,返回值為保留的版本號(hào)。“保留字符串”通過指針可用包吝,而不是一個(gè)純的字符串饼煞;因此允許利用指針比較代替字符串比較來進(jìn)行字典關(guān)鍵字的查找,這比通常的字符串比較方法功能有所改善诗越。
在python名稱空間表和用于保留模塊砖瞧、類或?qū)嵙傩缘淖值渲惺褂玫拿滞ǔ1槐A粲靡约铀倌_本執(zhí)行。
保留字符串定義后不能被作為無(wú)用單元收集嚷狞,所以必須注意在大字典關(guān)鍵字集上使用保留字符串將大大增加內(nèi)存需求块促,即使字典關(guān)鍵字應(yīng)急超出了作用域。
26. isinstance(object,class)
isinstance()函數(shù)在object參數(shù)是class參數(shù)的一個(gè)實(shí)例時(shí)床未,返回真竭翠。函數(shù)值的確定服從普通繼承法則和子類。如果object參數(shù)是在types模塊中利用類型類定義的特殊類型的實(shí)例薇搁,也能用isinstance()函數(shù)來識(shí)別斋扰。如果class參數(shù)不是類,也不是類型對(duì)象啃洋,就引發(fā)TypeError異常
27.issubclass(class1,class2)
如果class1參數(shù)是class2參數(shù)的子類传货,issubclass()函數(shù)則返回真。類通常被認(rèn)為是其自身的子類宏娄。若兩個(gè)參數(shù)中任一個(gè)都不是類對(duì)象问裕,則引發(fā)TypeError異常
28. len(s)
len()函數(shù)返回一序列(字符串、元組或列表)或字典對(duì)象的長(zhǎng)度
29. list(sequence)
list()函數(shù)返回以列表绝编。該列表的項(xiàng)及順序與sequence參數(shù)的項(xiàng)及順序相同僻澎,如下例所示:
>>>list(‘a(chǎn)bc’)
[‘a(chǎn)’,’b’,’c’]
>>>list([1,2,3])
[1,2,3]
30. locals()
locals()函數(shù)返回表示當(dāng)前局部符號(hào)表的字典
31. long(x)
long()函數(shù)將字符串或數(shù)字轉(zhuǎn)換為長(zhǎng)整型數(shù),對(duì)浮點(diǎn)數(shù)的轉(zhuǎn)換遵循與int()相同的規(guī)則
32. map(function,list,…)
map()函數(shù)將function運(yùn)用到list中的每一項(xiàng)上十饥,并返回新的列表窟勃,如下例所示:
>>>a=[1,2,3,4]
>>>map(lambda x:pow(x,2),a)
[1,4,9,16]
若提供附加的列表,則它們就被并行地提供給function逗堵。在后續(xù)無(wú)元素的列表增加None秉氧,直到所有參數(shù)列表達(dá)到相同的長(zhǎng)度為止。
如果function參數(shù)值為None蜒秤,則假定為identify函數(shù)汁咏,將使map()函數(shù)返回刪除所有為假的參數(shù)的list。如果function參數(shù)值為None作媚,且給定多個(gè)列表參數(shù)攘滩,返回的列表由一個(gè)個(gè)元組組成,這些元組由函數(shù)中的每一個(gè)參數(shù)列表內(nèi)相同對(duì)應(yīng)位置上的參數(shù)組成纸泡,如下例所示:
>>>map(None,[1,2,3,4],[4,5,6,7])
[(1,4),(2,5),(3,6),(4,7)]
上例的結(jié)果與zip()函數(shù)產(chǎn)生的結(jié)果等價(jià)
33. max(s,[,args…])
當(dāng)僅給定一個(gè)參數(shù)時(shí)漂问,max()函數(shù)返回序列s的最大值。當(dāng)給定一列參數(shù)時(shí),max()函數(shù)返回給定參數(shù)的最大參數(shù)
34. min(s[,args…])
當(dāng)僅給定一個(gè)參數(shù)時(shí)蚤假,min()函數(shù)返回序列s的最小值栏饮。當(dāng)給定一列參數(shù)時(shí),min()函數(shù)返回給定參數(shù)中的最小值磷仰。記着坻摇:多參數(shù)調(diào)用的序列不被遍歷,每個(gè)列表參數(shù)作為一個(gè)整體進(jìn)行比較灶平,如:
min([1,2,3],[4,5,6])
返回
[1,2,3]
而不是通常所想的結(jié)果為1伺通,要得到一個(gè)或多個(gè)列表中元素的最小值,可將所有列表連成一串民逼,如下所示:
min([1,2,3]+[4,5,6])