1. 程式人生 > >附錄: Python 3 內建函式大全

附錄: Python 3 內建函式大全

#1.abs()絕對值或複數的模
abs(-1)>>> 1


#2.all()接受一個迭代器,如果迭代器的所有元素都為真,那麼返回True,否則返回False
all([1,2,3])>>> True 


#3.any()接受一個迭代器,如果迭代器裡有一個元素為真,那麼返回True,否則返回False
any([0,0])>>> False


#4.ascii()呼叫物件的__repr__()方法,獲得該方法的返回值
ascii('ab')   >>> "'ab'"


#5.bin()將十進位制轉換為二進位制
bin(10)>>> '0b1010'


#6.bool()測試一個物件是True還是False
bool([])>>> False


#7.bytearray()   位元組陣列 位元組是計算機的語言,字串是人類語言,它們之間通過編碼表形成一一對應的關係  
a = 'python'
>>> bytearray(a,'utf8')
bytearray(b'python')
>>> list(bytearray(a,'utf8'))
[112, 121, 116, 104, 111, 110]
>>> b'python'[0]
112


#8.bytes()將一個字串轉換成位元組型別
st = 'python'
a = bytes(st,encoding='utf-8')
>>> a
b'python'


#9.callable()判斷物件是否可以被呼叫,能被呼叫的物件就是一個callables物件,比如函式
callable(str)>>> True


#10.chr()檢視十進位制數對應的ASCII字元
chr(10)>>> '\n'


#11.classmethod()用來指定一個方法為類的方法,由類直接呼叫執行,只有一個cls引數,執行類的方法時,自動將呼叫該方法的類賦值給cls.沒有此引數指定的類的方法為例項方法


#12.compile()將字串編譯成python能識別或可以執行的程式碼,也可以將文字讀成字串再編譯
compile(source, filename, mode, flags=0, dont_inherit=False, optimize=-1)
'''
將source編譯為程式碼或者AST物件。程式碼物件能過通過exec語句來執行或者eval()進行求值。
引數source:字串或者AST(abstract syntax trees)物件。
引數filename:程式碼檔名稱,如果不是從檔案讀取程式碼則傳遞一些可辨認的值。
引數model:指定編譯程式碼的種類。可以指定'exec', 'eval', 'single'。
引數flag和dont_inherit:這兩個引數為可選引數
'''
st = 'python'
r = compile(st,'<string>','exec')
>>> r<code object <module> at 0x000001841735E810, file "<string>", line 1>


#13.complex()建立一個值為real + imag * j的複數或者轉化一個字串或數為複數。如果第一個引數是字串,則不需要指定第二個引數
complex(1,2)>>> (1+2j)
complex('12')>>> (12+0j)


#14.copyright()版權


#15.credits()  支援


#16.delattr()刪除物件的屬性


#17.dict()建立資料字典
dict(a=1)>>> {'a': 1}


#18.dir()不帶引數時返回當前範圍內的變數,方法和定義的型別列表,帶引數時返回引數的屬性,方法列表


#19.divmod()分別取商和餘數
divmod(5,2)>>> (2, 1)


#20.enumerate()返回一個可以列舉的物件,該物件的next()方法將返回一個元組
li = ['a','b','c']
>>> enumerate(li)
<enumerate object at 0x0000018417402558>
>>> list(enumerate(li))
[(0, 'a'), (1, 'b'), (2, 'c')]


#21.eval()1.將字串str當成有效的表示式來求值並返回計算結果2.取出字串中內容
>>> eval("{'a':1}")
{'a': 1}
>>> eval('1 + 2 + 3')
6


#22.exec()執行字串或complie方法編譯過的字串,沒有返回值
>>> st = '''
z = 4
a = x + y + z
print(a)
'''
>>> exec(st,{'x':0,'y':0},{'y':10,'z':10})
14
>>> st = '''
a = x + y + z
print(a)
'''
>>> exec(st,{'x':0,'y':0},{'y':10,'z':10})
20


#23.exit()  退出


#24.filter()過濾器,構造一個序列,等價於[ item for item in iterables if function(item)],在函式中設定過濾條件,逐一迴圈迭代器中的元素,將返回值為True時的元素留下,形成一個filter型別資料
'''
filter(function or None, iterable) --> filter object
引數function:返回值為True或False的函式,可以為None
引數iterable:序列或可迭代物件
'''
>>> filter(lambda x:x+1,[1,2])
<filter object at 0x00000184173EAD30>
>>> list(filter(lambda x:x+1,[1,2]))
[1, 2]


>>> filter(lambda x:x>10,[9,12])
<filter object at 0x00000184173EAC88>
>>> list(filter(lambda x:x>10,[9,12]))
[12]


#25.float()講一個字串或整數轉換為浮點數
>>> float(11)
11.0


#26.format()格式化輸出字串,format(value, format_spec)實質上是呼叫了value的__format__(format_spec)方法
>>> format(12)
'12'
>>> format(12,'5d')
'   12'


#27.frozenset()建立一個不可修改的集合
'''
frozenset([iterable])
set和frozenset最本質的區別是前者是可變的,後者是不可變的。當集合物件會被改變時(例如刪除,新增元素),只能使用set,
一般來說使用fronzet的地方都可以使用set
'''
>>> frozenset([1,2,3])
frozenset({1, 2, 3})


#28.getattr()獲取物件的屬性
'''
getattr(object, name[, default]) -> value
獲取物件object名為name的特性,如果object不包含名為name的特性,將會丟擲AttributeError異常;如果不包含名為name的特性
且提供default引數,將返回default。
引數object:物件
引數name:物件的特性名
引數default:預設返回值
'''


#29.globals()返回一個描述當前全域性變數的字典
>>> st = 'python'
>>> globals()
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, 'a': b'python', 'li': ['a', 'b', 'c'], 'i': 'zip', 'st': 'python', 'r': <code object <module> at 0x000001841735E810, file "<string>", line 1>}


#30.hasattr()hasattr(object,name)判斷物件object是否包含名為name的特性(hasattr是通過呼叫getattr(object,name))是否丟擲異常來實現的
>>> hasattr(list,'pop')
True


#31.hash()雜湊值hash(object)注意:可雜湊的即不可變資料型別,不可雜湊即可變資料型別
'''
如果物件object為雜湊表型別,返回物件object的雜湊值。雜湊值為整數,在字典查詢中,雜湊值用於快遞比價字典的鍵。
兩個數值如果相等,則雜湊值也相等
'''
>>> hash('ab')
2766084925433962145
>>> hash(12)
12


#32.help() 返回物件的幫助文件
'''
呼叫內建的幫助系統,如果不包含引數,互動式幫助系統將在控制檯啟動。如果引數為字串,則可以是模組,類,方法等名稱,並且幫助頁面將會在控制檯列印。引數也可以         為任意物件
'''


#33.hex() 將十進位制轉換為十六進位制
hex(16)>>> '0x10'


#34.id()返回物件的記憶體地址
>>> id(1)
1726850144


#35.input()獲取使用者輸入內容
>>> input('請輸入:')
請輸入:abc
'abc'


#36.int()將一個字串或數值轉換為一個普通整數
'''
int(x=0) -> integer
int(x, base=10) -> integer
如果引數是字串,那麼它可能包含符號和小數點。引數base表示轉換的基數(預設是10進位制)。
它可以是[2,36]範圍內的值,或者0。如果是0,系統將根據字串內容來解析。
如果提供了引數base,但引數x並不是一個字串,將丟擲TypeError異常;
否則,引數x必須是數值(普通整數,長整數,浮點數)。通過捨去小數點來轉換浮點數。
如果超出了普通整數的表示範圍,一個長整數被返回。
如果沒有提供引數,函式返回0
'''
>>> int('12')
12


#37.isinstance()檢查物件是否是類的物件,返回True或False
>>> isinstance('a',str)
True


#38.issubclass()檢查一個類是否是另一個類的子類。返回True或False issubclass(sub, super)
>>> issubclass(str,object)
True


#39.iter() 返回一個iterator物件
'''
iter(iterable) -> iterator
iter(callable, sentinel) -> iterator
'''
>>> a = iter([1,2,3])
>>> next(a)
1
>>> a = iter([1,2,3,4,5])
>>> b = iter(a.__next__,3)
>>> next(b)
1
>>> next(b)
2
>>> next(b)
Traceback (most recent call last):
  File "<pyshell#24>", line 1, in <module>
    next(b)
StopIteration


#40.len()返回物件長度,引數可以是序列型別(字串,元組或列表)或對映型別(如字典)
>>> len([1,2,3])
3


#41.license()軟體的歷史


#42.list()列表建構函式
>>> list('abc')
['a', 'b', 'c']


#43.locals()列印當前可用的區域性變數的字典
>>> locals()
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, 'a': <list_iterator object at 0x00000185CCC2C4E0>, 'b': <callable_iterator object at 0x00000185CCCC8860>}


#44.map()對於引數iterable中的每個元素都應用fuction函式,並將結果作為列表返回
'''
如果有多個iterable引數,那麼fuction函式必須接收多個引數,這些iterable中相同索引處的元素將並行的作為function函式的引數。
如果一個iterable中元素的個數比其他少,那麼將用None來擴充套件改iterable使元素個數一致。
如果有多個iterable且function為None,map()將返回由元組組成的列表,每個元組包含所有iterable中對應索引處值。
'''
>>> li = [1,2,3]
>>> a = map(str,li)
>>> a
<map object at 0x00000185CCCC8F60>
>>> list(a)
['1', '2', '3']


#45.max()返回給定元素裡最大值
>>> max(1,2,3,4)
4


#46.memoryview()本函式是返回物件obj的記憶體檢視物件。所謂記憶體檢視物件,就是物件符合緩衝區協議的物件,為了給別的程式碼使用緩衝區裡的資料,而不必拷貝,就可以直接使用
>>> memoryview(b'aabc')
<memory at 0x00000185CCC95408>
>>> list(memoryview(b'abc'))
[97, 98, 99]


#47.min()返回給定元素裡最小值  具體用法跟max()相同
>>> min([1,2,3,4])
1


#48.next()返回一個可迭代資料結構(如列表)中的下一項
>>> a = iter([1,2,3,4])
>>> next(a)
1


#49.object()獲取一個新的,無特性(geatureless)物件。Object是所有類的基類。它提供的方法將在所有的型別例項中共享


#50.oct() 將十進位制轉換為八進位制
oct(8)>>> '0o10'


#51.open()開啟檔案open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)


#52.ord()檢視某個ascii對應的十進位制數
ord('a')>>> 97


#53.pow()冪函式pow(x, y, z=None, /)冪函式,表示取x得y次冪,如果存在第三個引數z,則表示乘方結果對第三個引數取餘
>>> pow(2,8)
256
>>> pow(2,8,3)
1


#54.print()輸出函式


#55.property()  類方法可以當作屬性呼叫


#56.quit()退出


#57.range() 根據需要生成一個指定範圍的數字,可以提供你需要的控制來迭代指定的次數
>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]


#58.repr()將任意值轉換為字串,供計時器讀取的形式  


#59.reversed()反轉,逆序物件


#60.round()四捨五入
>>> round(1.556,2)
1.56


#61.set()將物件轉換成集合


#62.setattr()與getattr()相對應


#63.slice()切片功能
>>> li = [1,2,3,4,5,6]
>>> slice(1,3,li)
slice(1, 3, [1, 2, 3, 4, 5, 6])


#64.sorted()排序
>>> li
[1, 2, 3, 4, 5, 6]
>>> sorted(li,key = int,reverse = True)
[6, 5, 4, 3, 2, 1]


#65.staticmethod()方便將外部函式整合到類體中,美化程式碼結構,重點在不需要類例項化的情況下呼叫方法


#66.str() 將字元型別/數值型別等轉換為字串型別
>>> str(12)
'12'


#67.sum()求和
>>> sum([1,2])
3


#68.super()呼叫父類的方法


#69.tuple()元組建構函式
>>> tuple([1,2,3])
(1, 2, 3)


#70.type()顯示物件所屬的型別
>>> type(1)
<class 'int'>


#71.vars()本函式是實現返回物件object的屬性和屬性值的字典物件。如果預設不輸入引數,就列印當前呼叫位置的屬性和屬性值,相當於locals()的功能。如果有引數輸入,就只打印這個引數相應的屬性和屬性值
>>> class ob:
i = 1
>>> vars(ob)
mappingproxy({'__module__': '__main__', 'i': 1, '__dict__': <attribute '__dict__' of 'ob' objects>, '__weakref__': <attribute '__weakref__' of 'ob' objects>, '__doc__': None})
>>> a = ob()
>>> vars(a)
{}

#72.zip()將物件逐一配對
>>> li = [1,2,3]
>>> tu = ('a','b','c')
>>> zip(tu,li)
<zip object at 0x00000185CCD04548>
>>> list(zip(tu,li))
[('a', 1), ('b', 2), ('c', 3)]
>>> dict(zip(tu,li))
{'a': 1, 'b': 2, 'c': 3}