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__()。
51逛万、print()
a)描述
原文:
print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
Prints the values to a stream, or to sys.stdout by default.
Optional keyword arguments:
file: a file-like object (stream); defaults to the current sys.stdout.
sep: string inserted between values, default a space.
end: string appended after the last value, default a newline.
flush: whether to forcibly flush the stream.
中文:
print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
將值打印到流或sys中泳猬。默認(rèn)stdout。
可選關(guān)鍵字參數(shù):
file:類似文件的對象(流);默認(rèn)為當(dāng)前sys.stdout宇植。
sep:插入值之間的字符串得封,默認(rèn)為空格。
end:最后一個值后面的字符串指郁,默認(rèn)是一個換行符忙上。
flush:立即吧內(nèi)容輸出到流文件,不作緩存闲坎。
b)語法
print() 方法的語法:print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
c)參數(shù)
objects:復(fù)數(shù)疫粥,表示可以一次輸出多個對象。輸出多個對象時腰懂,需要用 , 分隔梗逮。
sep:用來間隔多個對象,默認(rèn)值是一個空格绣溜。
end:用來設(shè)定以什么結(jié)尾慷彤。默認(rèn)值是換行符 \n,我們可以換成其他字符串涮毫。
file:要寫入的文件對象瞬欧。
flush:輸出是否被緩存通常決定于 file,但如果 flush 關(guān)鍵字參數(shù)為 True罢防,流會被強(qiáng)制刷新艘虎。
d)返回值
無。
e)實例
實例1:
print(1)
print("Hello World")
a = 1
b = 'kevin'
print(a, b)
print("aaa""bbb")
print("aaa", "bbb")
print("www", "kevin", "com", sep=".") # 設(shè)置間隔符
運行結(jié)果:
1
Hello World
1 kevin
aaabbb
aaa bbb
www.kevin.com
實例2:
import time
print("---KEVIN EXAMPLE : Loading 效果---")
print("Loading",end = "")
for i in range(20):
print(".",end = '',flush = True)
time.sleep(0.5)
運行結(jié)果:
---KEVIN EXAMPLE : Loading 效果---
Loading....................
52咒吐、property()
a)描述
property() 函數(shù)的作用是在新式類中返回屬性值野建。
b)語法
property() 方法的語法:class property([fget[, fset[, fdel[, doc]]]])
c)參數(shù)
fget:獲取屬性值的函數(shù)属划。
fset:設(shè)置屬性值的函數(shù)。
fdel:刪除屬性值函數(shù)候生。
doc:屬性描述信息同眯。
d)返回值
返回新式類屬性。
e)實例
定義一個可控屬性值 x
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.")
如果 c 是 C 的實例化, c.x 將觸發(fā) getter,c.x = value 將觸發(fā) setter 唯鸭, del c.x 觸發(fā) deleter须蜗。
如果給定 doc 參數(shù),其將成為這個屬性值的 docstring目溉,否則 property 函數(shù)就會復(fù)制 fget 函數(shù)的 docstring(如果有的話)明肮。
將 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
這個代碼和第一個例子完全相同缭付,但要注意這些額外函數(shù)的名字和 property 下的一樣柿估,例如這里的 x。
53陷猫、range()
a)描述
range() 函數(shù)返回的是一個可迭代對象(類型是對象)秫舌,而不是列表類型, 所以打印的時候不會打印列表绣檬。
list() 函數(shù)是對象迭代器足陨,可以把range()返回的可迭代對象轉(zhuǎn)為一個列表,返回的變量類型為列表娇未。
b)語法
range的語法:
range(stop)
range(start, stop[, step])
c)參數(shù)
start:計數(shù)從 start 開始钠右。默認(rèn)是從 0 開始。例如range(5)等價于range(0忘蟹, 5)。
stop:計數(shù)到 stop 結(jié)束搁凸,但不包括 stop媚值。例如:range(0, 5) 是[0, 1, 2, 3, 4]沒有5护糖。
step:步長褥芒,默認(rèn)為1。例如:range(0嫡良, 5) 等價于 range(0, 5, 1)锰扶。
d)返回值
返回的是一個可迭代對象。
e)實例
實例1:
print("range(5):",range(5))
print("range(0, 5):",range(0, 5))
for i in range(5):
print(i)
print("list(range(5)):",list(range(5)))
print("list(range(0)):",list(range(0)))
運行結(jié)果:
range(5): range(0, 5)
range(0, 5): range(0, 5)
0
1
2
3
4
list(range(5)): [0, 1, 2, 3, 4]
list(range(0)): []
實例2(有兩個參數(shù)或三個參數(shù)的情況(第二種構(gòu)造方法)):
print("list(range(0, 30, 5)):",list(range(0, 30, 5)))
print("list(range(0, 10, 2)):",list(range(0, 10, 2)))
print("list(range(0, -10, -1)):",list(range(0, -10, -1)))
print("list(range(1, 0)):",list(range(1, 0)))
運行結(jié)果:
list(range(0, 30, 5)): [0, 5, 10, 15, 20, 25]
list(range(0, 10, 2)): [0, 2, 4, 6, 8]
list(range(0, -10, -1)): [0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
list(range(1, 0)): []
54寝受、repr()
a)描述
原文:
Return the canonical string representation of the object.
For many object types, including most builtins, eval(repr(obj)) == obj.
中文:
返回對象的規(guī)范字符串表示形式坷牛。
對于許多對象類型,包括大多數(shù)內(nèi)建很澄,eval(repr(obj)) == obj京闰。
b)語法
repr() 方法的語法:repr(object)
c)參數(shù)
object:對象颜及。
d)返回值
返回一個對象的 string 格式。
e)實例
s = 'KEVIN'
print("repr(s):",repr(s))
dict = {'kevin': 'kevin.com', 'google': 'google.com'};
print("repr(dict):",repr(dict))
運行結(jié)果:
repr(s): 'KEVIN'
repr(dict): {'kevin': 'kevin.com', 'google': 'google.com'}
55蹂楣、reversed()
a)描述
原文:
Return a reverse iterator over the values of the given sequence.
中文:
返回給定序列值的反向迭代器俏站。
b)語法
reversed 的語法:reversed(seq)
c)參數(shù)
seq:要轉(zhuǎn)換的序列,可以是 tuple, string, list 或 range痊土。
d)返回值
返回一個反轉(zhuǎn)的迭代器肄扎。
e)實例
# 字符串
seqString = 'Kevin'
print("list(reversed(seqString)):",list(reversed(seqString)))
# 元組
seqTuple = ('K', 'e', 'v', 'i', 'n')
print("list(reversed(seqTuple)):",list(reversed(seqTuple)))
# range
seqRange = range(5, 9)
print("list(reversed(seqRange)):",list(reversed(seqRange)))
# 列表
seqList = [1, 2, 4, 3, 5]
print("list(reversed(seqList)):",list(reversed(seqList)))
運行結(jié)果:
list(reversed(seqString)): ['n', 'i', 'v', 'e', 'K']
list(reversed(seqTuple)): ['n', 'i', 'v', 'e', 'K']
list(reversed(seqRange)): [8, 7, 6, 5]
list(reversed(seqList)): [5, 3, 4, 2, 1]
56、round()
a)描述
原文:
Round a number to a given precision in decimal digits.
The return value is an integer if ndigits is omitted or None. Otherwise the return value has the same type as the number. ndigits may be negative.
中文:
將一個數(shù)字四舍五入到給定的十進(jìn)制精度寺董。
返回值是一個整數(shù),如果ndigit被省略或沒有。否則返回值的類型與數(shù)字相同猜揪。
詮釋:
round() 方法返回浮點數(shù) x 的四舍五入值坛梁,準(zhǔn)確的說保留值將保留到離上一位更近的一端(四舍六入)。
精度要求高的划咐,不建議使用該函數(shù)褐缠。
b)語法
round() 方法的語法:round( x [, n] )
c)參數(shù)
x:數(shù)字表達(dá)式公般。
n:表示從小數(shù)點位數(shù)官帘,其中 x 需要四舍五入,默認(rèn)值為 0揽浙。
d)返回值
返回浮點數(shù)x的四舍五入值状婶。
e)實例
print ("round(70.23456):", round(70.23456))
print ("round(56.659,1):", round(56.659,1))
print ("round(80.264, 2):", round(80.264, 2))
print ("round(100.000056, 3):", round(100.000056, 3))
print ("round(-100.000056, 3):", round(-100.000056, 3))
運行結(jié)果:
round(70.23456): 70
round(56.659,1): 56.7
round(80.264, 2): 80.26
round(100.000056, 3): 100.0
round(-100.000056, 3): -100.0
57、set()。
a)描述
set() 函數(shù)創(chuàng)建一個無序不重復(fù)元素集,可進(jìn)行關(guān)系測試,刪除重復(fù)數(shù)據(jù)抓歼,還可以計算交集萄喳、差集减江、并集等。
b)語法
set 語法:class set([iterable])
c)參數(shù)
iterable -- 可迭代對象對象。
d)返回值
返回新的集合對象手蝎。
e)實例
x = set('kevin')
y = set('google')
print("x, y:",x, y)
print("x & y:",x & y) # 交集
print("x | y:",x | y) # 并集
print("x - y:",x - y) # 差集
運行結(jié)果:
x, y: {'e', 'k', 'i', 'v', 'n'} {'e', 'g', 'l', 'o'}
x & y: {'e'}
x | y: {'e', 'k', 'i', 'v', 'o', 'n', 'g', 'l'}
x - y: {'n', 'v', 'k', 'i'}
58唠雕、setattr()
a)描述
原文:
Sets the named attribute on the given object to the specified value.
setattr(x, 'y', v)
is equivalent to x.y = v
中文:
將給定對象上的命名屬性設(shè)置為指定值。
setattr(x, 'y', v)
is equivalent to x.y = v
詮釋:
setattr() 函數(shù)對應(yīng)函數(shù) getattr()捕儒,用于設(shè)置屬性值冰啃,該屬性不一定是存在的。
b)語法
setattr() 語法:setattr(object, name, value)
c)參數(shù)
object:對象刘莹。
name:字符串阎毅,對象屬性。
value:屬性值点弯。
d)返回值
無扇调。
e)實例
實例1(對已存在的屬性進(jìn)行賦值):
class A(object):
bar = 1
a = A()
print("getattr(a, 'bar'):",getattr(a, 'bar')) # 獲取屬性 bar 值
print("setattr(a, 'bar', 5):",setattr(a, 'bar', 5)) # 設(shè)置屬性 bar 值
print("a.bar:",a.bar)
運行結(jié)果:
getattr(a, 'bar'): 1
setattr(a, 'bar', 5): None
a.bar: 5
實例2(如果屬性不存在會創(chuàng)建一個新的對象屬性,并對屬性賦值):
class A():
name = "kevin"
a = A()
print("setattr(a, 'age', 28):",setattr(a, 'age', 28))
print("a.age:",a.age)
運行結(jié)果:
setattr(a, 'age', 28): None
a.age: 28
59抢肛、slice()
a)描述
slice() 函數(shù)實現(xiàn)切片對象狼钮,主要用在切片操作函數(shù)里的參數(shù)傳遞。
b)語法
slice 語法:
class slice(stop)
class slice(start, stop[, step])
c)參數(shù)
start:起始位置
stop:結(jié)束位置
step:間距
d)返回值
返回一個切片對象雌团。
e)實例
myslice = slice(5) # 設(shè)置截取5個元素的切片
print("myslice:",myslice)
arr = range(10)
print("arr:",arr)
print("list(arr):",list(arr))
print("arr[myslice]:",arr[myslice]) # 截取 5 個元素
print("list(arr[myslice]):",list(arr[myslice])) # 截取 5 個元素
運行結(jié)果:
myslice: slice(None, 5, None)
arr: range(0, 10)
list(arr): [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
arr[myslice]: range(0, 5)
list(arr[myslice]): [0, 1, 2, 3, 4]
60燃领、sorted()
a)描述
原文:
Return a new list containing all items from the iterable in ascending order.
A custom key function can be supplied to customize the sort order, and the reverse flag can be set to request the result in descending order.
中文:
返回一個新列表,其中包含按升序排列的iterable中的所有項锦援。
可以提供自定義鍵函數(shù)來定制排序順序猛蔽,還可以設(shè)置反轉(zhuǎn)標(biāo)志來按降序請求結(jié)果。
詮釋:
sorted() 函數(shù)對所有可迭代的對象進(jìn)行排序操作灵寺。
sort 與 sorted 區(qū)別:
sort 是應(yīng)用在 list 上的方法曼库,sorted 可以對所有可迭代的對象進(jìn)行排序操作。
list 的 sort 方法返回的是對已經(jīng)存在的列表進(jìn)行操作略板,而內(nèi)建函數(shù) sorted 方法返回的是一個新的 list毁枯,而不是在原來的基礎(chǔ)上進(jìn)行的操作。
b)語法
sorted 語法:sorted(iterable, key=None, reverse=False)
c)參數(shù)
iterable:可迭代對象叮称。
key:主要是用來進(jìn)行比較的元素种玛,只有一個參數(shù),具體的函數(shù)的參數(shù)就是取自于可迭代對象中瓤檐,指定可迭代對象中的一個元素來進(jìn)行排序赂韵。
reverse:排序規(guī)則,reverse = True 降序 挠蛉, reverse = False 升序(默認(rèn))祭示。
d)返回值
返回重新排序的列表谴古。
e)實例
實例1():
lst = [5, 2, 3, 1, 4]
print("sorted(lst):",sorted(lst))
運行結(jié)果:
sorted(lst): [1, 2, 3, 4, 5]
實例2(也可以使用 list 的 list.sort() 方法质涛。這個方法會修改原始的 list(返回值為None)稠歉。通常這個方法不如sorted()方便-如果你不需要原始的 list,list.sort()方法效率會稍微高一些):
lst = [5, 2, 3, 1, 4]
lst.sort()
print("lst:",lst)
運行結(jié)果:
lst: [1, 2, 3, 4, 5]
實例3(list.sort() 方法只為 list 定義汇陆,而 sorted() 函數(shù)可以接收任何的 iterable):
dic = {1: 'D', 2: 'B', 3: 'B', 4: 'E', 5: 'A'}
print("sorted(dic):",sorted(dic))
運行結(jié)果:
sorted(dic): [1, 2, 3, 4, 5]
實例4(利用key進(jìn)行倒序排序):
example_list = [5, 0, 6, 1, 2, 7, 3, 4]
result_list = sorted(example_list, key=lambda x: x*-1)
print("result_list:",result_list)
運行結(jié)果:
result_list: [7, 6, 5, 4, 3, 2, 1, 0]
實例5(要進(jìn)行反向排序怒炸,也通過傳入第三個參數(shù) reverse=True):
example_list = [5, 0, 6, 1, 2, 7, 3, 4]
result_list = sorted(example_list, reverse=True)
print("result_list:",result_list)
運行結(jié)果:
result_list: [7, 6, 5, 4, 3, 2, 1, 0]
實例6(sorted 的應(yīng)用,也可以通過 key 的值來進(jìn)行數(shù)組/字典的排序):
array = [{"age":20,"name":"a"},{"age":25,"name":"b"},{"age":10,"name":"c"}]
array = sorted(array,key=lambda x:x["age"])
print("array:",array)
運行結(jié)果:
array: [{'age': 10, 'name': 'c'}, {'age': 20, 'name': 'a'}, {'age': 25, 'name': 'b'}]
實例7(多列排序瞬测,先按照成績降序排序横媚,相同成績的按照名字升序排序):
d1 = [{'name':'alice', 'score':38}, {'name':'bob', 'score':18}, {'name':'darl', 'score':28}, {'name':'christ', 'score':28}]
l = sorted(d1, key=lambda x:(-x['score'], x['name']))
print("l:",l)
運行結(jié)果:
l: [{'name': 'alice', 'score': 38}, {'name': 'christ', 'score': 28}, {'name': 'darl', 'score': 28}, {'name': 'bob', 'score': 18}]