內(nèi)置函數(shù) | ||||
---|---|---|---|---|
abs() | divmod() | input() | open() | staticmethod() |
all() | enumerate() | int() | ord() | str() |
any() | eval() | isinstance() | pow() | sum() |
basestring() | execfile() | issubclass() | print() | super() |
bin() | file() | iter() | property() | tuple() |
bool() | filter() | len() | range() | type() |
bytearray() | float() | list() | raw_input() | unichr() |
callable() | format() | locals() | reduce() | unicode() |
chr() | frozenset() | long() | reload() | vars() |
classmethod() | getattr() | map() | repr() | xrange() |
cmp() | globals() | max() | reverse() | zip() |
compile() | hasattr() | memoryview() | round() | __import__() |
complex() | hash() | min() | set() | |
delattr() | help() | next() | setattr() | |
dict() | hex() | objcet() | slice() | |
dir() | id() | oct() | sorted() | exce 內(nèi)置表達(dá)式 |
-
1 abs()
返回?cái)?shù)字的絕對(duì)值
abs(-45) # 45
abs(1.1) # 1.1
abs(110L) # 110
-
2 all()
用于判斷給定的可迭代對(duì)象iterable中的所有元素是否都為True雅潭,如果是返回True,否則返回False
# 函數(shù)等價(jià)于
def all(iterable):
for element in iterable:
if not element:
return False
return True
-
3 any()
用于判斷給定的可迭代對(duì)象iterable是否全為False菊碟,如果是返回False苹粟,如果有一個(gè)為True,則返回True
# 函數(shù)等價(jià)于
def all(iterable):
for element in iterable:
if element:
return True
return False
-
4 basestring()
是str和unicode的超類(父類),也是抽象類贷岸,因此不能被調(diào)用和實(shí)例化壹士,但可以被用來(lái)判斷一個(gè)對(duì)象是否為str或者unicode的實(shí)例
# 以下兩個(gè)語(yǔ)句等價(jià)
isinstance(obj, basestring)
isinstance(obj, (str, unicode))
-
5 bin()
返回一個(gè)整數(shù)int或者長(zhǎng)整數(shù)long int的二進(jìn)制表示
bin(10) # 返回字符串 '0b1010'
-
6 bool()
用戶將給定參數(shù)轉(zhuǎn)換為布爾類型,如果沒(méi)有參數(shù)偿警,返回False躏救。bool是int的子類。 -
7 bytearray()
返回一個(gè)新字節(jié)數(shù)組螟蒸。這個(gè)數(shù)組里的元素是可變的盒使,并且每個(gè)元素的值范圍 0<=x<=256
# 創(chuàng)建bytearray對(duì)象的方法規(guī)則
bytearray()
bytearray(b'')
bytearray(6)
bytearray('hello', encoding="utf-8")
8 callable()
用于檢查一個(gè)對(duì)象是否可調(diào)用。如果返回True七嫌,object仍然可能調(diào)用失斏侔臁;但如果返回False诵原,調(diào)用對(duì)象object一定不會(huì)成功英妓。
對(duì)于函數(shù),方法蔓纠,lambda函數(shù)辑畦,類以及實(shí)現(xiàn)了call方法的類實(shí)例,都返回True9 chr()
用一個(gè)范圍在0~255的整數(shù)做參數(shù)腿倚,返回一個(gè)對(duì)應(yīng)的字符
>>> chr(48) # "0"
>>> chr(0x30) # "0"
10 classmethod()
修飾類中的方法纯出,被修飾的方法不需要self參數(shù),但第一個(gè)參數(shù)需要時(shí)表示自身類的cls參數(shù)猴誊,可以來(lái)調(diào)用類的屬性潦刃,類的方法,實(shí)例化對(duì)象等懈叹。11 cmp() (僅python2)
cmp(x, y) , 如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 112 compile()
將一個(gè)字符串編譯為字節(jié)代碼
>>>str = "for i in range(0,10): print(i)"
>>> c = compile(str,'','exec') # 編譯為字節(jié)代碼對(duì)象
>>> c
<code object <module> at 0x10141e0b0, file "", line 1>
>>> exec(c)
0
1
2
3
4
5
6
7
8
9
-
13 complex()
用于創(chuàng)建一個(gè)值為real+imag*j的復(fù)數(shù)或者轉(zhuǎn)化一個(gè)字符串或數(shù)字為復(fù)數(shù)乖杠。如果第一個(gè)參數(shù)為字符串,則不需要指定第二個(gè)參數(shù)澄成。
>>>complex(1, 2)
(1 + 2j)
>>> complex(1) # 數(shù)字
(1 + 0j)
>>> complex("1") # 當(dāng)做字符串處理
(1 + 0j)
# 注意:這個(gè)地方在"+"號(hào)兩邊不能有空格胧洒,也就是不能寫成"1 + 2j",應(yīng)該是"1+2j"墨状,否則會(huì)報(bào)錯(cuò)
>>> complex("1+2j")
(1 + 2j)
-
14 delattr()
用于刪除屬性卫漫。delattr(x, 'foobar') 相等于 del x.foobar。
#!/usr/bin/python
# -*- coding: UTF-8 -*-
class Coordinate:
x = 10
y = -5
z = 0
point1 = Coordinate()
print('x = ',point1.x)
print('y = ',point1.y)
print('z = ',point1.z)
delattr(Coordinate, 'z')
print('--刪除 z 屬性后--')
print('x = ',point1.x)
print('y = ',point1.y)
# 觸發(fā)錯(cuò)誤
print('z = ',point1.z)
-
15 dict()
創(chuàng)建一個(gè)字典
>>>dict() # 創(chuàng)建空字典
{}
>>> dict(a='a', b='b', t='t') # 傳入關(guān)鍵字
{'a': 'a', 'b': 'b', 't': 't'}
>>> dict(zip(['one', 'two', 'three'], [1, 2, 3])) # 映射函數(shù)方式來(lái)構(gòu)造字典
{'three': 3, 'two': 2, 'one': 1}
>>> dict([('one', 1), ('two', 2), ('three', 3)]) # 可迭代對(duì)象方式來(lái)構(gòu)造字典
{'three': 3, 'two': 2, 'one': 1}
16 dir()
不帶參數(shù)時(shí)肾砂,返回當(dāng)前范圍內(nèi)的變量列赎、方法和定義的類型列表;帶參數(shù)時(shí)镐确,返回參數(shù)的屬性包吝、方法列表。如果參數(shù)包含方法dir()源葫,該方法將被調(diào)用诗越。如果參數(shù)不包含dir(),該方法將最大限度地收集參數(shù)信息息堂。17 divmod()
把除數(shù)和余數(shù)運(yùn)算結(jié)果結(jié)合起來(lái)嚷狞,返回一個(gè)包含商和余數(shù)的元組(a // b, a % b)。在 python 2.3 版本之前不允許處理復(fù)數(shù)荣堰。
>>>divmod(7, 2)
(3, 1)
>>> divmod(8, 2)
(4, 0)
>>> divmod(1+2j,1+0.5j)
((1+0j), 1.5j)
-
18 enumerate()
用于將一個(gè)可遍歷的數(shù)據(jù)對(duì)象(如列表床未、元組或字符串)組合為一個(gè)索引序列,同時(shí)列出數(shù)據(jù)和數(shù)據(jù)下標(biāo)振坚,一般用在 for 循環(huán)當(dāng)中即硼。Python 2.3. 以上版本可用,2.6 添加 start 參數(shù)屡拨。
>>>seasons = ['Spring', 'Summer', 'Fall', 'Winter']
>>> list(enumerate(seasons))
[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
>>> list(enumerate(seasons, start=1)) # 下標(biāo)從 1 開始
[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]
>>>seq = ['one', 'two', 'three']
>>> for i, element in enumerate(seq):
... print i, element
...
0 one
1 two
2 three
-
19 eval()
用來(lái)執(zhí)行一個(gè)字符串表達(dá)式只酥,并返回表達(dá)式的值。
>>>x = 7
>>> eval( '3 * x' )
21
>>> eval('pow(2,2)')
4
>>> eval('2 + 2')
4
>>> n=81
>>> eval("n + 4")
85
20 execfile() (僅python2)
用來(lái)執(zhí)行一個(gè)python文件21 file()
用于創(chuàng)建一個(gè) file 對(duì)象呀狼,它有一個(gè)別名叫 open() 更形象一些裂允,它們是內(nèi)置函數(shù)。參數(shù)是以字符串的形式傳遞的哥艇。
>>>f = file('test.txt')
>>>f.read()
22 filter()
用于過(guò)濾序列绝编,過(guò)濾掉不符合條件的元素,返回由符合條件元素組成的新列表貌踏。
該接受兩個(gè)參數(shù)十饥,第一個(gè)為函數(shù),第二個(gè)為序列祖乳,序列的每個(gè)元素作為參數(shù)傳遞給函數(shù)進(jìn)行判斷逗堵,然后返回返回True或False,最后將返回True的元素放到新列表中
(注意:python2.7返回列表眷昆,Python3.x返回迭代器對(duì)象)23 float()
用于將整數(shù)和字符串轉(zhuǎn)換成浮點(diǎn)數(shù)蜒秤。
>>>float(1)
1.0
>>> float(112)
112.0
>>> float(-123.6)
-123.6
>>> float('123') # 字符串
123.0
-
24 format()
Python2.6 開始,新增了一種格式化字符串的函數(shù) str.format()亚斋,它增強(qiáng)了字符串格式化的功能作媚。基本語(yǔ)法是通過(guò) {} 和 : 來(lái)代替以前的 % 帅刊。format 函數(shù)可以接受不限個(gè)參數(shù)纸泡,位置可以不按順序。
>>>"{} {}".format("hello", "world") # 不設(shè)置指定位置赖瞒,按默認(rèn)順序
'hello world'
>>> "{0} {1}".format("hello", "world") # 設(shè)置指定位置
'hello world'
>>> "{1} {0} {1}".format("hello", "world") # 設(shè)置指定位置
'world hello world'
>>> "{hello} {name}".format(hello="Hello", name="China") # 設(shè)置參數(shù)
'Hello China'
-
25 frozenset()
返回一個(gè)凍結(jié)的集合女揭,凍結(jié)后集合不能再添加或刪除任何元素。
>>>a = frozenset(range(10)) # 生成一個(gè)新的不可變集合
>>> a
frozenset([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> b = frozenset('runoob')
>>> b
frozenset(['b', 'r', 'u', 'o', 'n']) # 創(chuàng)建不可變集合
-
26 getattr()
用于返回一個(gè)對(duì)象屬性值冒黑。
>>>class A(object):
... bar = 1
...
>>> a = A()
>>> getattr(a, 'bar') # 獲取屬性 bar 值
1
>>> getattr(a, 'bar2') # 屬性 bar2 不存在田绑,觸發(fā)異常
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'A' object has no attribute 'bar2'
>>> getattr(a, 'bar2', 3) # 屬性 bar2 不存在,但設(shè)置了默認(rèn)值
3
-
27 globals()
會(huì)以字典類型返回當(dāng)前位置的全部全局變量
>>>a='runoob'
>>> print(globals()) # globals 函數(shù)返回一個(gè)全局變量的字典抡爹,包括所有導(dǎo)入的變量掩驱。
{'__builtins__': <module '__builtin__' (built-in)>, '__name__': '__main__', '__doc__': None, 'a': 'runoob', '__package__': None}
-
28 hasattr()
用于判斷對(duì)象是否包含對(duì)應(yīng)的屬性。
#!/usr/bin/python
# -*- coding: UTF-8 -*-
class Coordinate:
x = 10
y = -5
z = 0
point1 = Coordinate()
print(hasattr(point1, 'x')) # True
print(hasattr(point1, 'y')) # True
print(hasattr(point1, 'z')) # True
print(hasattr(point1, 'no')) # False
-
29 hash()
用于獲取取一個(gè)對(duì)象(字符串或者數(shù)值等)的哈希值冬竟。
>>>hash('test') # 字符串
2314058222102390712
>>> hash(1) # 數(shù)字
1
>>> hash(str([1,2,3])) # 集合
1335416675971793195
>>> hash(str(sorted({'1':1}))) # 字典
7666464346782421378
30 help()
用于查看函數(shù)或模塊用途的詳細(xì)說(shuō)明欧穴。31 hex()
用于將10進(jìn)制整數(shù)轉(zhuǎn)換成16進(jìn)制,以字符串形式表示泵殴。
>>>hex(255)
'0xff'
>>> hex(-42)
'-0x2a'
>>> hex(1L)
'0x1L'
>>> hex(12)
'0xc'
>>> type(hex(12))
<class 'str'> # 字符串
32 id()
用于獲取對(duì)象的內(nèi)存地址涮帘。33 input()
Python3.x 中 input() 函數(shù)接受一個(gè)標(biāo)準(zhǔn)輸入數(shù)據(jù),返回為 string 類型笑诅。
Python2.x 中 input() 相等于 eval(raw_input(prompt)) 调缨,用來(lái)獲取控制臺(tái)的輸入疮鲫。
raw_input() 將所有輸入作為字符串看待,返回字符串類型弦叶。而 input() 在對(duì)待純數(shù)字輸入時(shí)具有自己的特性俊犯,它返回所輸入的數(shù)字的類型( int, float )34 int()
用于將一個(gè)字符串或數(shù)字轉(zhuǎn)換為整型
>>>int() # 不傳入?yún)?shù)時(shí),得到結(jié)果0
0
>>> int(3)
3
>>> int(3.6)
3
>>> int('12',16) # 如果是帶參數(shù)base的話伤哺,12要以字符串的形式進(jìn)行輸入燕侠,12 為 16進(jìn)制
18
>>> int('0xa',16)
10
>>> int('10',8)
8
-
35 isinstance()
判斷一個(gè)對(duì)象是否是一個(gè)已知的類型,類似 type()立莉。
isinstance() 與 type() 區(qū)別:
- type() 不會(huì)認(rèn)為子類是一種父類類型绢彤,不考慮繼承關(guān)系。
- isinstance() 會(huì)認(rèn)為子類是一種父類類型蜓耻,考慮繼承關(guān)系茫舶。
- 如果要判斷兩個(gè)類型是否相同推薦使用 isinstance()。
>>>a = 2
>>> isinstance (a,int)
True
>>> isinstance (a,str)
False
>>> isinstance (a,(str,int,list)) # 是元組中的一個(gè)返回 True
True
class A:
pass
class B(A):
pass
isinstance(A(), A) # returns True
type(A()) == A # returns True
isinstance(B(), A) # returns True
type(B()) == A # returns False
-
36 issubclass()
issubclass(class, classinfo) 判斷參數(shù) class 是否是類型參數(shù) classinfo 的子類媒熊。
#!/usr/bin/python
# -*- coding: UTF-8 -*-
class A:
pass
class B(A):
pass
print(issubclass(B,A)) # 返回 True
37 iter()
函數(shù)用來(lái)生成迭代器奇适。38 len()
返回對(duì)象(字符、列表芦鳍、元組等)長(zhǎng)度或項(xiàng)目個(gè)數(shù)嚷往。39 list()
用于將元組轉(zhuǎn)換為列表。40 locals()
以字典類型返回當(dāng)前位置的全部局部變量柠衅。41 long()
將數(shù)字或字符串轉(zhuǎn)換為一個(gè)長(zhǎng)整型皮仁。42 map()
根據(jù)提供的函數(shù)對(duì)指定序列做映射。python2返回新列表菲宴,python3返回一個(gè)迭代器43 max()
返回給定參數(shù)的最大值贷祈,參數(shù)可以為序列。44 memoryview()
返回給定參數(shù)的內(nèi)存查看對(duì)象(Momory view)喝峦。45 min()
定參數(shù)的最小值势誊,參數(shù)可以為序列。46 next()
返回迭代器的下一個(gè)項(xiàng)目谣蠢。47 oct()
將一個(gè)整數(shù)轉(zhuǎn)換成8進(jìn)制字符串粟耻。48 open()
打開一個(gè)文件,創(chuàng)建一個(gè) file 對(duì)象眉踱,相關(guān)的方法才可以調(diào)用它進(jìn)行讀寫挤忙。49 ord()
ord() 函數(shù)是 chr() 函數(shù)(對(duì)于8位的ASCII字符串)或 unichr() 函數(shù)(對(duì)于Unicode對(duì)象)的配對(duì)函數(shù),它以一個(gè)字符(長(zhǎng)度為1的字符串)作為參數(shù)谈喳,返回對(duì)應(yīng)的 ASCII 數(shù)值册烈,或者 Unicode 數(shù)值,如果所給的 Unicode 字符超出了你的 Python 定義范圍婿禽,則會(huì)引發(fā)一個(gè) TypeError 的異常赏僧。
>>>ord('a')
97
>>> ord('b')
98
>>> ord('c')
99
50 pow()
方法返回x的y次方的值大猛。51 print()
方法用于打印輸出,最常見的一個(gè)函數(shù)淀零。
語(yǔ)法:print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
>>>print(1)
1
>>> print("Hello World")
Hello World
>>> a = 1
>>> b = 'runoob'
>>> print(a,b)
1 runoob
>>> print("aaa""bbb")
aaabbb
>>> print("aaa","bbb")
aaa bbb
>>>
>>> print("www","runoob","com",sep=".") # 設(shè)置間隔符
www.runoob.com
import time
print("---RUNOOB EXAMPLE : Loading 效果---")
print("Loading",end = "")
for i in range(20):
print(".",end = '',flush = True)
time.sleep(0.5)
-
52 property()
property() 函數(shù)的作用是在新式類中返回屬性值胎署。
語(yǔ)法:class property([fget[, fset[, fdel[, doc]]]])
# 定義一個(gè)可控的屬性值
class C(object):
def __init__(self):
self._x = None
def getx(self):
return self._x
def setx(self, value):
self._x = value
def delx(self):
del self._x
x = property(getx, setx, delx, "I'm the 'x' property.")
# 將 property 函數(shù)用作裝飾器可以很方便的創(chuàng)建只讀屬性:
class Parrot(object):
def __init__(self):
self._voltage = 100000
@property
def voltage(self):
"""Get the current voltage."""
return self._voltage
#上面的代碼將 voltage() 方法轉(zhuǎn)化成同名只讀屬性的 getter 方法。
#property 的 getter,setter 和 deleter 方法同樣可以用作裝飾器:
class C(object):
def __init__(self):
self._x = None
@property
def x(self):
"""I'm the 'x' property."""
return self._x
@x.setter
def x(self, value):
self._x = value
@x.deleter
def x(self):
del self._x
53 range()
range() 函數(shù)可創(chuàng)建一個(gè)整數(shù)列表窑滞,一般用在 for 循環(huán)中。
python3中返回迭代器54 reduce()
python2內(nèi)置函數(shù)恢筝,python3已經(jīng)移除哀卫。
reduce() 函數(shù)會(huì)對(duì)參數(shù)序列中元素進(jìn)行累積。
函數(shù)將一個(gè)數(shù)據(jù)集合(鏈表撬槽,元組等)中的所有數(shù)據(jù)進(jìn)行下列操作:用傳給 reduce 中的函數(shù) function(有兩個(gè)參數(shù))先對(duì)集合中的第 1此改、2 個(gè)元素進(jìn)行操作,得到的結(jié)果再與第三個(gè)數(shù)據(jù)用 function 函數(shù)運(yùn)算侄柔,最后得到一個(gè)結(jié)果共啃。55 reload()
python2中用于重新載入之前載入的模塊。python3已經(jīng)移除暂题。56 repr()
將對(duì)象轉(zhuǎn)化為供解釋器讀取的形式移剪。57 reverse()
用于反轉(zhuǎn)列表中元素。
#!/usr/bin/python
aList = [123, 'xyz', 'zara', 'abc', 'xyz']
aList.reverse()
print "List : ", aList
# List : ['xyz', 'abc', 'zara', 'xyz', 123]
58 round()
返回浮點(diǎn)數(shù)x的四舍五入值薪者。59 set()
創(chuàng)建一個(gè)無(wú)序不重復(fù)元素集纵苛,可進(jìn)行關(guān)系測(cè)試,刪除重復(fù)數(shù)據(jù)言津,還可以計(jì)算交集攻人、差集、并集等悬槽。60 setatrr()
對(duì)應(yīng)函數(shù) getattr怀吻,用于設(shè)置屬性值,該屬性不一定是存在的初婆。
>>>class A(object):
... bar = 1
...
>>> a = A()
>>> getattr(a, 'bar') # 獲取屬性 bar 值
1
>>> setattr(a, 'bar', 5) # 設(shè)置屬性 bar 值
>>> a.bar
5
-
61 slice()
實(shí)現(xiàn)切片對(duì)象蓬坡,主要用在切片操作函數(shù)里的參數(shù)傳遞。
>>> myslice = slice(5) # 設(shè)置截取5個(gè)元素的切片
>>> myslice
slice(None, 5, None)
>>> arr = range(10)
>>> arr
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> arr[myslice] # 截取 5 個(gè)元素
[0, 1, 2, 3, 4]
>>>
62 sorted()
對(duì)所有可迭代的對(duì)象進(jìn)行排序操作烟逊。63 staticmethod()
返回函數(shù)的靜態(tài)方法渣窜。64 str()
將對(duì)象轉(zhuǎn)化為適于人閱讀的形式。65 sum()
對(duì)序列進(jìn)行求和計(jì)算66 super()
用于調(diào)用父類(超類)的一個(gè)方法宪躯。67 tupe()
元組 tuple() 函數(shù)將列表轉(zhuǎn)換為元組乔宿。
>>>tuple([1,2,3,4])
(1, 2, 3, 4)
>>> tuple({1:2,3:4}) #針對(duì)字典 會(huì)返回字典的key組成的tuple
(1, 3)
>>> tuple((1,2,3,4)) #元組會(huì)返回元組自身
(1, 2, 3, 4)
68 type()
如果你只有第一個(gè)參數(shù)則返回對(duì)象的類型,三個(gè)參數(shù)返回新的類型對(duì)象访雪。69 unichr()
unichr() 函數(shù) 和 chr()函數(shù)功能基本一樣详瑞, 只不過(guò)是返回 unicode 的字符掂林。70 xrange()
python2 xrange() 返回一個(gè)生成器。python3已經(jīng)移除71 zip()
zip() 函數(shù)用于將可迭代的對(duì)象作為參數(shù)坝橡,將對(duì)象中對(duì)應(yīng)的元素打包成一個(gè)個(gè)元組泻帮,然后返回由這些元組組成的列表。
如果各個(gè)迭代器的元素個(gè)數(shù)不一致计寇,則返回列表長(zhǎng)度與最短的對(duì)象相同锣杂,利用 * 號(hào)操作符,可以將元組解壓為列表番宁。
zip 方法在 Python 2 和 Python 3 中的不同:在 Python 3.x 中為了減少內(nèi)存元莫,zip() 返回的是一個(gè)對(duì)象。如需展示列表蝶押,需手動(dòng) list() 轉(zhuǎn)換72 exec()
exec 執(zhí)行儲(chǔ)存在字符串或文件中的Python語(yǔ)句踱蠢,相比于 eval,exec可以執(zhí)行更復(fù)雜的 Python 代碼棋电。
>>>exec 'print "Hello World"'
Hello World
# 單行語(yǔ)句字符串
>>> exec "print 'runoob.com'"
runoob.com
# 多行語(yǔ)句字符串
>>> exec """for i in range(5):
... print "iter time: %d" % i
... """
iter time: 0
iter time: 1
iter time: 2
iter time: 3
iter time: 4