Python內(nèi)置函數(shù)(1)— abs()、all()价淌、any()申眼、ascii()、bin()蝉衣、bool()括尸、breakpoint()、bytearray()、bytes()、callable()醋粟。
Python內(nèi)置函數(shù)(2)— chr()筝闹、classmethod()戳葵、compile()、complex()、delattr()、dict()雀摘、dir()、divmod()八拱、enumerate()阵赠、eval()涯塔。
Python內(nèi)置函數(shù)(3)— exec()、filter()清蚀、float()匕荸、format()、frozenset()轧铁、getattr()每聪、globals()旦棉、hasattr()齿风、hash()、help()绑洛。
Python內(nèi)置函數(shù)(4)— hex()救斑、id()、input()真屯、int()脸候、isinstance()、issubclass绑蔫、iter()运沦、len()、list()配深、locals()携添。
Python內(nèi)置函數(shù)(5)— map()、max()篓叶、memoryview()烈掠、min()、next()缸托、object()左敌、oct()、open()俐镐、ord()矫限、pow()。
Python內(nèi)置函數(shù)(6)— print()佩抹、property()叼风、range()、repr()匹摇、reversed()咬扇、round()、set()廊勃、setattr()懈贺、slice()经窖、sorted()。
Python內(nèi)置函數(shù)(7)— staticmethod()梭灿、str()画侣、sum()、super()堡妒、tuple()配乱、type()、vars()皮迟、zip()搬泥、__import__()。
41伏尼、map()
a)描述
原文:
map(func, *iterables) --> map object
Make an iterator that computes the function using arguments from each of the iterables. Stops when the shortest iterable is exhausted.
中文:
map(func, *iterables) --> map object
創(chuàng)建一個(gè)迭代器忿檩,使用每個(gè)迭代器的參數(shù)來(lái)計(jì)算函數(shù)。
詮釋?zhuān)?br>
map() 會(huì)根據(jù)提供的函數(shù)對(duì)指定序列做映射爆阶。
第一個(gè)參數(shù) function 以參數(shù)序列中的每一個(gè)元素調(diào)用 function 函數(shù)燥透,返回包含每次 function 函數(shù)返回值的新列表。
b)語(yǔ)法
map() 函數(shù)語(yǔ)法:map(function, iterable, ...)
c)參數(shù)
function:函數(shù)
iterable:一個(gè)或多個(gè)序列
d)返回值
返回迭代器辨图。
e)實(shí)例
實(shí)例1:
def square(x): # 計(jì)算平方數(shù)
return x ** 2
print("map(square, [1, 2, 3, 4, 5]):",map(square, [1, 2, 3, 4, 5])) # 計(jì)算列表各個(gè)元素的平方
print("map(lambda x: x ** 2, [1, 2, 3, 4, 5]):",map(lambda x: x ** 2, [1, 2, 3, 4, 5])) # 使用 lambda 匿名函數(shù)
print("map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10]):",map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])) # 提供了兩個(gè)列表班套,對(duì)相同位置的列表數(shù)據(jù)進(jìn)行相加
運(yùn)行結(jié)果:
map(square, [1, 2, 3, 4, 5]): <map object at 0x000002A4C49E0A00>
map(lambda x: x ** 2, [1, 2, 3, 4, 5]): <map object at 0x000002A4C49E0580>
map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10]): <map object at 0x000002A4C4A894C0>
實(shí)例2(如果函數(shù)有多個(gè)參數(shù), 但每個(gè)參數(shù)的序列元素?cái)?shù)量不一樣, 會(huì)根據(jù)最少元素的序列進(jìn)行):
listx = [1,2,3,4,5,6,7] # 7 個(gè)元素
listy = [2,3,4,5,6,7] # 6 個(gè)元素
listz = [100,100,100,100] # 4 個(gè)元素
list_result = map(lambda x,y,z : x**2 + y + z,listx, listy, listz)
print("list_result:",list_result)
print("list(list_result):",list(list_result))
運(yùn)行結(jié)果:
list_result: <map object at 0x000001A2D43CB790>
list(list_result): [103, 107, 113, 121]
# 明顯可以看出是由于 lambda 中的 z 參數(shù),實(shí)際是使用了 listz, 而 listz 里面只有 4 個(gè)元素, 所以即使 listx 有 7 個(gè)元素, listy 有 6 個(gè)元素,也不會(huì)繼續(xù)執(zhí)行了,只執(zhí)行了 4 個(gè)元素的的計(jì)算故河。
實(shí)例3(除了計(jì)算冪函數(shù)吱韭,還可利用 map 函數(shù)的映射功能完成其他任務(wù),例如規(guī)范名字格式):
name_list = {'tony','cHarLIE','rachAEl'}
def format_name(s):
ss=s[0:1].upper()+s[1:].lower()
return ss
print("list(map(format_name,name_list)):",list(map(format_name,name_list)))
print("type(name_list):",type(name_list))
運(yùn)行結(jié)果:
list(map(format_name,name_list)): ['Rachael', 'Tony', 'Charlie']
type(name_list): <class 'set'>
實(shí)例4(filter是通過(guò)生成 True 和 False 組成的迭代器將可迭代對(duì)象中不符合條件的元素過(guò)濾掉忧勿;而 map返回的則是 True 和 False 組成的迭代器):
res1 = map(lambda n: n > 5, range(10))
lt1 = list(res1)
print("lt1:",lt1)
res2 = filter(lambda n: n > 5, range(10))
lt = list(res2)
print("lt:",lt)
運(yùn)行結(jié)果:
lt1: [False, False, False, False, False, False, True, True, True, True]
lt: [6, 7, 8, 9]
實(shí)例5:
如果 zip(array) 不經(jīng)過(guò) x,y,z=zip(array)拆分成 x,y,z 三個(gè)變量杉女,那么 [[1,4,7],[2,5,8],[3,6,9]]被 zip(*array) 之后的結(jié)果恰好是 [(1, 2, 3), (4, 5, 6), (7, 8, 9)],剛好形成一個(gè)轉(zhuǎn)置的關(guān)系鸳吸,這對(duì)于所有 array=[[1,2,3],[4,5,6],[7,8,9]]的二維數(shù)組都是一樣的熏挎。
當(dāng)然 [(1, 2, 3), (4, 5, 6), (7, 8, 9)] 還不是我們需要的最后的結(jié)果。
因?yàn)橹皇且粋€(gè)存放 tuple 的 list晌砾,我們要保持原來(lái) list 是存 list 的一致性坎拐,所以要應(yīng)用到上方的 map 函數(shù)。
array = [[1, 4, 7], [2, 5, 8], [3, 6, 9]]
print("map(list, zip(*array)):",map(list, zip(*array)))
print("list(map(list, zip(*array))):",list(map(list, zip(*array))))
print("list(zip([1, 3, 5, 7, 9], [2, 4, 6, 8, 10])):",list(zip([1, 3, 5, 7, 9], [2, 4, 6, 8, 10])))
print("list(map(lambda x,y : [x,y], [1,3,5,7,9], [2,4,6,8,10])):",list(map(lambda x,y : [x,y], [1,3,5,7,9], [2,4,6,8,10])))
運(yùn)行結(jié)果:
map(list, zip(*array)): <map object at 0x0000020CD31306D0>
list(map(list, zip(*array))): [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
list(zip([1, 3, 5, 7, 9], [2, 4, 6, 8, 10])): [(1, 2), (3, 4), (5, 6), (7, 8), (9, 10)]
list(map(lambda x,y : [x,y], [1,3,5,7,9], [2,4,6,8,10])): [[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]]
42养匈、max()
a)描述
原文:
max(iterable, *[, default=obj, key=func]) -> value
max(arg1, arg2, *args, *[, key=func]) -> value
With a single iterable argument, return its biggest item. The default keyword-only argument specifies an object to return if the provided iterable is empty.
With two or more arguments, return the largest argument.
中文:
max(iterable, *[, default=obj, key=func]) -> value
max(arg1, arg2, *args, *[, key=func]) -> value
使用單個(gè)可迭代參數(shù)哼勇,返回其最大的項(xiàng)。默認(rèn)的關(guān)鍵字參數(shù)指定了當(dāng)提供的iterable為空時(shí)返回的對(duì)象呕乎。
使用兩個(gè)或多個(gè)參數(shù)积担,返回最大的參數(shù)。
b)語(yǔ)法
max() 方法的語(yǔ)法:max( x, y, z, .... )
c)參數(shù)
x:數(shù)值表達(dá)式猬仁。
y:數(shù)值表達(dá)式帝璧。
z:數(shù)值表達(dá)式先誉。
d)返回值
返回給定參數(shù)的最大值。
e)實(shí)例
print("max(80, 100, 1000):", max(80, 100, 1000))
print("max(-20, 100, 400):", max(-20, 100, 400))
print("max(-80, -20, -10):", max(-80, -20, -10))
print("max(0, 100, -400):", max(0, 100, -400))
運(yùn)行結(jié)果:
max(80, 100, 1000): 1000
max(-20, 100, 400): 400
max(-80, -20, -10): -10
max(0, 100, -400): 100
43的烁、memoryview()
a)描述
memoryview() 函數(shù)返回給定參數(shù)的內(nèi)存查看對(duì)象(Momory view)褐耳。
所謂內(nèi)存查看對(duì)象,是指對(duì)支持緩沖區(qū)協(xié)議的數(shù)據(jù)進(jìn)行包裝渴庆,在不需要復(fù)制對(duì)象基礎(chǔ)上允許Python代碼訪(fǎng)問(wèn)铃芦。
b)語(yǔ)法
memoryview 語(yǔ)法:memoryview(obj)
c)參數(shù)
obj:對(duì)象
d)返回值
返回元組列表。
e)實(shí)例
v = memoryview(bytearray("abcefg", 'utf-8'))
print("v[1]:",v[1])
print("v[-1]:",v[-1])
print("v[1:4]:",v[1:4])
print("v[1:4].tobytes():",v[1:4].tobytes())
運(yùn)行結(jié)果:
v[1]: 98
v[-1]: 103
v[1:4]: <memory at 0x00000243E4D42580>
v[1:4].tobytes(): b'bce'
44襟雷、min()
a)描述
原文:
min(iterable, *[, default=obj, key=func]) -> value
min(arg1, arg2, *args, *[, key=func]) -> value
With a single iterable argument, return its smallest item. The default keyword-only argument specifies an object to return if the provided iterable is empty.
With two or more arguments, return the smallest argument.
中文:
min(iterable, *[, default=obj, key=func]) -> value
min(arg1, arg2, *args, *[, key=func]) -> value
使用單個(gè)可迭代參數(shù)刃滓,返回其最小的項(xiàng)。默認(rèn)的關(guān)鍵字參數(shù)指定了當(dāng)提供的iterable為空時(shí)返回的對(duì)象嗤军。
帶兩個(gè)或多個(gè)參數(shù)注盈,返回最小的參數(shù)。
b)語(yǔ)法
min() 方法的語(yǔ)法:min( x, y, z, .... )
c)參數(shù)
x:數(shù)值表達(dá)式叙赚。
y:數(shù)值表達(dá)式。
z:數(shù)值表達(dá)式僚饭。
d)返回值
返回給定參數(shù)的最小值震叮。
e)實(shí)例
print("min(80, 100, 1000):", min(80, 100, 1000))
print("min(-20, 100, 400):", min(-20, 100, 400))
print("min(-80, -20, -10):", min(-80, -20, -10))
print("min(0, 100, -400):", min(0, 100, -400))
運(yùn)行結(jié)果:
min(80, 100, 1000): 80
min(-20, 100, 400): -20
min(-80, -20, -10): -80
min(0, 100, -400): -400
45、next()
a)描述
原文:
next(iterator[, default])
Return the next item from the iterator. If default is given and the iterator is exhausted, it is returned instead of raising StopIteration.
中文:
next(iterator[, default]
從迭代器返回下一項(xiàng)鳍鸵。如果提供了默認(rèn)值苇瓣,并且迭代器已耗盡,則返回它而不是引發(fā)StopIteration偿乖。
b)語(yǔ)法
next 語(yǔ)法:next(iterator[, default])
c)參數(shù)
iterator:可迭代對(duì)象
default:可選击罪,用于設(shè)置在沒(méi)有下一個(gè)元素時(shí)返回該默認(rèn)值,如果不設(shè)置贪薪,又沒(méi)有下一個(gè)元素則會(huì)觸發(fā) StopIteration 異常媳禁。
d)返回值
返回對(duì)象幫助信息。
e)實(shí)例
實(shí)例1:
# 首先獲得Iterator對(duì)象:
it = iter([1, 2, 3, 4, 5])
# 循環(huán):
while True:
try:
# 獲得下一個(gè)值:
x = next(it)
print(x)
except StopIteration:
# 遇到StopIteration就退出循環(huán)
break
運(yùn)行結(jié)果:
1
2
3
4
5
實(shí)例2(如果傳入第二個(gè)參數(shù), 獲取最后一個(gè)元素之后, 下一次next返回該默認(rèn)值, 而不會(huì)拋出 StopIteration):
it = iter([1, 2, 5, 4, 3])
while True:
x = next(it, 'a')
print(x)
if x == 'a':
break
運(yùn)行結(jié)果:
1
2
5
4
3
a
46画切、object()
暫略
a)描述
原文:
中文:
b)語(yǔ)法
c)參數(shù)
d)返回值
e)實(shí)例
47竣稽、oct()
a)描述
原文:
Return the octal representation of an integer.
中文:
返回整數(shù)的八進(jìn)制表示形式。
b)語(yǔ)法
oct 語(yǔ)法:oct(x)
c)參數(shù)
x:整數(shù)霍弹。
d)返回值
返回8進(jìn)制字符串毫别。
e)實(shí)例
print("oct(10):",oct(10))
print("oct(20):",oct(20))
print("oct(15):",oct(15))
運(yùn)行結(jié)果:
oct(10): 0o12
oct(20): 0o24
oct(15): 0o17
48、open()
a)描述
原文:
Open file and return a stream. Raise OSError upon failure.
file is either a text or byte string giving the name (and the path if the file isn't in the current working directory) of the file to be opened or an integer file descriptor of the file to be wrapped. (If a file descriptor is given, it is closed when the returned I/O object is closed, unless closefd is set to False.)
中文:
打開(kāi)文件并返回一個(gè)流典格。失敗時(shí)提出OSError岛宦。
文件是文本或字節(jié)字符串,給出要打開(kāi)的文件的名稱(chēng)(和路徑耍缴,如果文件不在當(dāng)前工作目錄)或要包裝的文件的整數(shù)文件描述符砾肺。(如果給出了一個(gè)文件描述符齐佳,它在返回的I/O對(duì)象關(guān)閉時(shí)關(guān)閉,除非將closefd設(shè)置為False)债沮。
詮釋?zhuān)?br>
open() 函數(shù)用于打開(kāi)一個(gè)文件炼吴,并返回文件對(duì)象,在對(duì)文件進(jìn)行處理過(guò)程都需要使用到這個(gè)函數(shù)疫衩,如果該文件無(wú)法被打開(kāi)硅蹦,會(huì)拋出 OSError。
注意:使用 open() 函數(shù)一定要保證關(guān)閉文件對(duì)象闷煤,即調(diào)用 close() 函數(shù)童芹。
open() 函數(shù)常用形式是接收兩個(gè)參數(shù):文件名(file)和模式(mode):open(file, mode='r')
b)語(yǔ)法
open 語(yǔ)法:open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
c)參數(shù)
file:必需,文件路徑(相對(duì)或者絕對(duì)路徑)鲤拿。
mode:可選假褪,文件打開(kāi)模式
buffering:設(shè)置緩沖
encoding:一般使用utf8
errors:報(bào)錯(cuò)級(jí)別
newline:區(qū)分換行符
closefd:傳入的file參數(shù)類(lèi)型
opener:
模式 | 描述 |
---|---|
t | 文本模式 (默認(rèn))。 |
x | 寫(xiě)模式近顷,新建一個(gè)文件生音,如果該文件已存在則會(huì)報(bào)錯(cuò)。 |
b | 二進(jìn)制模式窒升。 |
+ | 打開(kāi)一個(gè)文件進(jìn)行更新(可讀可寫(xiě))缀遍。 |
U | 通用換行模式(不推薦)。 |
r | 以只讀方式打開(kāi)文件饱须。文件的指針將會(huì)放在文件的開(kāi)頭域醇。這是默認(rèn)模式。 |
rb | 以二進(jìn)制格式打開(kāi)一個(gè)文件用于只讀蓉媳。文件指針將會(huì)放在文件的開(kāi)頭譬挚。這是默認(rèn)模式。一般用于非文本文件如圖片等酪呻。 |
r+ | 打開(kāi)一個(gè)文件用于讀寫(xiě)减宣。文件指針將會(huì)放在文件的開(kāi)頭。 |
rb+ | 以二進(jìn)制格式打開(kāi)一個(gè)文件用于讀寫(xiě)号杠。文件指針將會(huì)放在文件的開(kāi)頭蚪腋。一般用于非文本文件如圖片等。 |
w | 打開(kāi)一個(gè)文件只用于寫(xiě)入姨蟋。如果該文件已存在則打開(kāi)文件屉凯,并從開(kāi)頭開(kāi)始編輯,即原有內(nèi)容會(huì)被刪除眼溶。如果該文件不存在悠砚,創(chuàng)建新文件。 |
wb | 以二進(jìn)制格式打開(kāi)一個(gè)文件只用于寫(xiě)入堂飞。如果該文件已存在則打開(kāi)文件灌旧,并從開(kāi)頭開(kāi)始編輯绑咱,即原有內(nèi)容會(huì)被刪除。如果該文件不存在枢泰,創(chuàng)建新文件描融。一般用于非文本文件如圖片等。 |
w+ | 打開(kāi)一個(gè)文件用于讀寫(xiě)衡蚂。如果該文件已存在則打開(kāi)文件窿克,并從開(kāi)頭開(kāi)始編輯,即原有內(nèi)容會(huì)被刪除毛甲。如果該文件不存在年叮,創(chuàng)建新文件。 |
wb+ | 以二進(jìn)制格式打開(kāi)一個(gè)文件用于讀寫(xiě)玻募。如果該文件已存在則打開(kāi)文件只损,并從開(kāi)頭開(kāi)始編輯,即原有內(nèi)容會(huì)被刪除七咧。如果該文件不存在跃惫,創(chuàng)建新文件。一般用于非文本文件如圖片等坑雅。 |
a | 打開(kāi)一個(gè)文件用于追加辈挂。如果該文件已存在,文件指針將會(huì)放在文件的結(jié)尾裹粤。也就是說(shuō),新的內(nèi)容將會(huì)被寫(xiě)入到已有內(nèi)容之后蜂林。如果該文件不存在遥诉,創(chuàng)建新文件進(jìn)行寫(xiě)入。 |
ab | 以二進(jìn)制格式打開(kāi)一個(gè)文件用于追加噪叙。如果該文件已存在矮锈,文件指針將會(huì)放在文件的結(jié)尾。也就是說(shuō)睁蕾,新的內(nèi)容將會(huì)被寫(xiě)入到已有內(nèi)容之后苞笨。如果該文件不存在,創(chuàng)建新文件進(jìn)行寫(xiě)入子眶。 |
a+ | 打開(kāi)一個(gè)文件用于讀寫(xiě)瀑凝。如果該文件已存在,文件指針將會(huì)放在文件的結(jié)尾臭杰。文件打開(kāi)時(shí)會(huì)是追加模式粤咪。如果該文件不存在,創(chuàng)建新文件用于讀寫(xiě)渴杆。 |
ab+ | 以二進(jìn)制格式打開(kāi)一個(gè)文件用于追加寥枝。如果該文件已存在宪塔,文件指針將會(huì)放在文件的結(jié)尾。如果該文件不存在囊拜,創(chuàng)建新文件用于讀寫(xiě)某筐。 |
默認(rèn)為文本模式,如果要以二進(jìn)制模式打開(kāi)冠跷,加上 b 南誊。
d)返回值
無(wú)
e)實(shí)例
f = open('test.txt')
print(f.read())
運(yùn)行結(jié)果:
I'm Kevin.
I love you.
49、ord()
a)描述
原文:
Return the Unicode code point for a one-character string.
中文:
返回一個(gè)單字符字符串的Unicode編碼點(diǎn)蔽莱。
詮釋?zhuān)?br>
ord() 函數(shù)是 chr() 函數(shù)(對(duì)于 8 位的 ASCII 字符串)的配對(duì)函數(shù)弟疆,它以一個(gè)字符串(Unicode 字符)作為參數(shù),返回對(duì)應(yīng)的 ASCII 數(shù)值盗冷,或者 Unicode 數(shù)值怠苔。
b)語(yǔ)法
ord() 方法的語(yǔ)法:ord(c)
c)參數(shù)
c:字符。
d)返回值
返回值是對(duì)應(yīng)的十進(jìn)制整數(shù)仪糖。
e)實(shí)例
print("ord('a'):",ord('a'))
print("ord('€'):",ord('€'))
運(yùn)行結(jié)果:
ord('a'): 97
ord('€'): 8364
50柑司、pow()
a)描述
原文:
Equivalent to xy (with two arguments) or xy % z (with three arguments)
Some types, such as ints, are able to use a more efficient algorithm when invoked using the three argument form.
中文:
與xy(有兩個(gè)參數(shù))或xy % z(有三個(gè)參數(shù))
有些類(lèi)型,如int锅劝,在使用三個(gè)參數(shù)形式調(diào)用時(shí)能夠使用更有效的算法攒驰。
b)語(yǔ)法
math 模塊 pow() 方法的語(yǔ)法:
import math
math.pow( x, y )
內(nèi)置pow() 方法的語(yǔ)法:pow(x, y[, z])
函數(shù)是計(jì)算x的y次方,如果z存在故爵,則再對(duì)結(jié)果進(jìn)行取模玻粪,其結(jié)果等效于pow(x,y) %z。
注意:pow() 通過(guò)內(nèi)置的方法直接調(diào)用诬垂,內(nèi)置方法會(huì)把參數(shù)作為整型劲室,而 math 模塊則會(huì)把參數(shù)轉(zhuǎn)換為 float。
c)參數(shù)
x:數(shù)值表達(dá)式结窘。
y:數(shù)值表達(dá)式很洋。
z:數(shù)值表達(dá)式。
d)返回值
返回 xy或xy % z的值隧枫。
e)實(shí)例
import math # 導(dǎo)入 math 模塊
print("math.pow(100, 2) : ", math.pow(100, 2))
# 使用內(nèi)置喉磁,查看輸出結(jié)果區(qū)別
print("pow(100, 2) : ", pow(100, 2))
print("math.pow(100, -2) : ", math.pow(100, -2))
print("math.pow(2, 4) : ", math.pow(2, 4))
print("math.pow(3, 0) : ", math.pow(3, 0))
運(yùn)行結(jié)果:
math.pow(100, 2) : 10000.0
pow(100, 2) : 10000
math.pow(100, -2) : 0.0001
math.pow(2, 4) : 16.0
math.pow(3, 0) : 1.0