一.内置函數大全
二.内置函數詳解
1、abs(x)
功能:取數的絕對值
>>> abs(-1) #取-1的絕對值
1
2、all(iterable)
功能:可疊代對象中的元素都為True,則傳回True(元素除了是 0、空、False 外都算 True)。
>>> all([0,1,3]) #有0,說明為False
False
>>> all([1,-5,6]) #負數也是為True
True
3、any(iterable)
功能:可疊代對象中的元素中,有一個為True,則傳回True(元素除了是 0、空、False 外都算 True)。
>>> any([0,1,2]) #有一個為True,則為True
True
>>> any([]) #空清單為False
False
4、ascii(object)
功能:類似repr()函數,把記憶體對象變成一個可列印的字元串格式
>>> ascii([1,2,3,4])
'[1, 2, 3, 4]'
5、bin(x)
功能:把一個整數轉換成二進制
>>> bin(300) #把300轉換成二進制
'0b100101100'
>>> bin(1)
'0b1'
6、bool([x])
功能:傳回一個布爾值,空清單為假,不為空為真
>>> bool([]) #空清單
False
>>> bool([1,2]) #不為空清單
True
>>> bool([0])
True
7、bytearray[source[, encoding[, errors]]]
功能:位元組數組,并且可以修改二進制的位元組
>>> b = bytearray("abcd",encoding="utf-8") #聲明一個位元組數組
>>> b[0] #列印第一個元素的ascii值,也就是'a'對應的ascii值
97
>>> b[0] = 100 #修改時,隻能指派對應字元的ascii值
>>> b
bytearray(b'dbcd') #發現位元組數組值被修改
8、bytes([source[, encoding[, errors]]])
功能:把字元串轉換成位元組
>>> b = bytes("abcd",encoding="utf-8") #聲明位元組
>>> b
b'abcd'
>>> b[0] #通路到'a'字元對應的ASCII值
97
>>> b[0]=100 #不可以修改裡面的值,不然會報錯
Traceback (most recent call last):
File "", line 1, in
TypeError: 'bytes' object does not support item assignment
9、callable(object)
功能:判斷一個對象是否可以被調用,隻有在後面有括号的,表示可以調用,比如:函數,類。
>>> callable([]) #清單後面不加括号
False
>>> def sayhi():pass #定義一個函數
>>> callable(sayhi) #函數調用,後面需要加括号
True
10、chr(i)
功能:通過ascii的值,找到對應的字元
>>> chr(97)
'a'
11、ord(c)
功能:根據字元,找到對應的ascii值
>>> ord('a')
97
12、classmethod(function)
功能:類方法,這個到後續談到類的時候再說。
13、compile(source, filename, mode, flags=0, dont_inherit=False, optimize=-1)
功能:用于把代碼編譯的一個過程,這個基本用不到
>>> code = """1+3/2*6"""
>>> py_object = compile(code,'','eval') #把代碼轉換為字元串
>>> eval(py_object) #執行
10.0
14、complex([real[, imag]])
功能:傳回一個複數,我們幾乎用不到。
>>> complex('1+2j')
(1+2j)
15、delattr(object, name)
功能:類那邊使用的,先不care。
16、dict(**kwarg)、dict(mapping, **kwarg)、dict(iterable, **kwarg)
功能:傳回一個字典
>>> dict() #定義一個字典
{}
>>> dict(name='zhangqigao',age=18) #傳入非固定關鍵字參數
{'name': 'zhangqigao', 'age': 18}
>>> dict([('name','zhangqigao'),('age',18)]) #傳入一個清單
{'name': 'zhangqigao', 'age': 18}
>>> dict([['name','zhangqigao'],['age',18]]) #傳入一個清單
{'name': 'zhangqigao', 'age': 18}
17、dir([object])
功能:看一個對象有哪些方法
>>> name = []
>>> dir(name) #顯示name下的所有的方法
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__',
'__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__',
'__iadd__', '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__',
'__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__',
'__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear',
'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
18、divmod(a,b)
功能:地闆除,獲得一個元組,元組第一個元素是商,第二個元素是餘數。
>>> divmod(5,2)
(2, 1) #2是商,1是餘數
19、enumerate(iterable,start=0)
功能:周遊一個可疊代對象,擷取索引和對應的元素的
>>> seasons = ['Spring', 'Summer', 'Fall', 'Winter']
>>> list(enumerate(seasons))
[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
>>> list(enumerate(seasons, start=1))
[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]
20、eval(expression, globals=None, locals=None)
功能:把字典類型的字元串變成字典,把一個整數類型的字元變成int類型,或者加減乘除這種簡單轉換成表達式。
>>> eval('1') #字元類型轉換成int類型
1
>>> eval("1+3/2*6") #字元串轉換為表達式
10.0
21、exec(object[, globals[, locals]])
功能:有語句的和複雜的語句的字元串轉換成表達式
code = '''
def timmer(func): #timmer(test1) func=test1
def deco(*args,**kwargs):
res = func(*args,**kwargs) #run test1()
return res
return deco
@timmer
def test1():
print("in the test1")
return "from the test1"
res = test1()
print(res)
'''
exec(code)
#輸出
in the test1
from the test1
22、filter(function, iterable)
功能:通過function過濾條件,去擷取iterable中你想要的資料。
>>> res = filter(lambda n:n>5,range(10))
>>> res #得到一個疊代器
>>> for i in res:
print(i)
6
7
8
9
23、map(function, iterable)
功能:對傳入的每一個值進行處理,處理完了再傳回,再把原來的結果覆寫掉。
>>> res = map(lambda n:n*2,range(5)) #n*2是處理方式
>>> res
>>> for i in res:
print(i)
2
4
6
8
24、reduce(function,iterable)
功能:把一組可疊代序列通過function函數操作,元素之間相加或者相乘操作。
>>> from functools import reduce
>>> res = reduce(lambda x,y:x+y,range(10)) #x+y的值賦給x,rang(10)中的每個元素賦給y
>>> res
45
>>> res = reduce(lambda x,y:x*y,range(1,10)) #x*y的值賦給x,rang(10)中的每個元素賦給y
>>> res
362880
25、float([x])
功能:把一個浮點類型的字元串轉換為浮點類型的資料。
>>> float('+1.23')
1.23
>>> float(' -12345\n')
-12345.0
>>> float('1e-003')
0.001
>>> float('+1E6')
1000000.0
>>> float('-Infinity')
-inf
26、format(value[, format_spec])
功能:格式化字元串,詳細使用:猛擊這裡
27、frozenset([iterable])
功能:把集合變成一個不可變的集合
>>> res = frozenset([1,2,3,4,3])
>>> res
frozenset({1, 2, 3, 4}) #去重的,不可變的集合
>>> dir(res) #沒有可變的方法
['__and__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__',
'__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__iter__', '__le__',
'__len__', '__lt__', '__ne__', '__new__', '__or__', '__rand__', '__reduce__', '__reduce_ex__',
'__repr__', '__ror__', '__rsub__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__',
'__subclasshook__', '__xor__', 'copy', 'difference', 'intersection', 'isdisjoint', 'issubset',
'issuperset', 'symmetric_difference', 'union']
注:set()是可變的
28、getattr(object, name[, default])
功能:這邊是類那邊的,後續再講。
29、globals()
功能:傳回目前這個python檔案中的所有變量的key-value,變量是key,值是value
print(globals())
#輸出
{'__spec__': None, '__name__': '__main__', '__file__': 'D:/PycharmProjects/pyhomework
/day4/内置函數/内置函數.py', '__doc__': None, '__package__': None, '__loader__':
<_frozen_importlib_external.SourceFileLoader object at 0x0000000000695B00>,
'__cached__': None, '__builtins__':
注:可以判斷一個檔案中的變量是否存在,而globals()隻能列印全局變量
30、hash(object)
功能:反射出一個對象的對應的hash值。
>>> hash('zhangqigao')
2313972277536963491
>>> hash(255)
255
>>> hash('a')
6806508886604307842
這個有什麼用呐?
先看下面的圖:

看上面的圖我們知道,如果一張表中5百萬個使用者資訊,以我們現在的知識,隻能用for循環去查找,那樣的話,效率會很低。那我們怎麼辦呢?我們可以這樣,就是把每一個姓名對應有一對應的值,然後通過對應的key值去定位,key值是放在一個清單中,當我們去查找某個key值時,可以折半查找,這樣大大減少了查找時間,提高效率,這種也叫二分法查找,後面會有對應的部落格專門寫這一塊的。
31、help([object])
功能:顯示對象的幫助資訊
>>> res = [] #定義一個清單
>>> help(res) #列印幫助資訊
Help on list object:
class list(object)
| list() -> new empty list
| list(iterable) -> new list initialized from iterable's items
|
| Methods defined here:
|
.....
32、hex(x)
功能:把一個數字轉成16進制
>>> hex(255)
'0xff'
>>> hex(10)
'0xa'
33、id(object)
功能:傳回對象的記憶體位址
>>> id('zhangqigao')
50993136 #'zhangqigao'這個字元串的記憶體位址
34、input([prompt])
功能:輸入字元串
>>> s = input('--> ')
--> Monty Python's Flying Circus #輸入的内容
>>> s
"Monty Python's Flying Circus"
35、int(x)
功能:把其他資料類型強制轉換成int類型
>>> int('10')
10
36、isinstance(object, classinfo)
功能:這個在疊代器中使用,詳情:猛擊這裡
37、issubclass(class, classinfo)
功能:判斷是否是一個子類,這個後續講到類那邊會講
38、iter(object[, sentinel])
功能:把一個普通序列轉成疊代器
with open('mydata.txt') as fp:
for line in iter(fp.readline, ''):
process_line(line)
39、len(s)
功能:計算序列或者字元串的長度
>>> len("zhangqigao") #字元串的長度
10
>>> len([1,2,3,4,5]) #清單的長度
5
40、list([iterable])
功能:把其他序列轉換成一個清單
>>> list((1,2,3,4,5)) #把一個元組轉換為一個清單
[1, 2, 3, 4, 5]
41、locals()
功能:列印局部變量
def test():
locals_var = 333
print(locals()) #隻列印局部變量
test()
print(globals().get("locals_var")) #隻能列印全局變量
#輸出
{'locals_var': 333}
None
42、max(iterable, *[, key, default])
功能:傳回清單中的最大值
>>> max([1,2,3,4,5])
5
43、min(iterable, *[, key, default])
功能:傳回清單中的最小值
>>> min([1,2,3,4,5])
1
44、memoryview(obj)
功能:先忘記它,暫時用不到,用到詳細說明
45、next(iterator[, default])
功能:傳回疊代器的下一個值,相當于__next__()方法,如果疊代最後一個資料之後沒有值了,則會抛出一個StopIteration異常
>>> a = iter([1,2])
>>> next(a)
1
>>> next(a)
2
>>> next(a)
Traceback (most recent call last):
File "", line 1, in
StopIteration
46、object
功能:python中一切皆對象,每一個對象都有它的屬性和方法
47、oct(x)
功能:把一個數轉成8進制
>>> oct(7)
'0o7'
>>> oct(8)
'0o10'
>>> oct(15)
'0o17'
>>> oct(16)
'0o20'
48、open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
功能:檔案操作,詳細介紹:猛擊這裡
49、pow(x, y[, z])
功能:傳回多少次幂
>>> pow(2,3) #相當于2**3
8
50、print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
功能:列印
>>> print("zhangqigao")
zhangqigao
51、property(fget=None, fset=None, fdel=None, doc=None)
功能:這個倒後面的類再說。
52、range(stop)、range(start, stop[, step])
功能:生成一個疊代器
>>> range(5)
range(0, 5)
>>> range(1,5)
range(1, 5)
>>> range(1,5,2)
range(1, 5, 2)
53、repr(object)
功能:把代碼轉成字元串對象,沒什麼用,這邊忽略
54、reversed(seq)
功能:反轉一個序列,跟清單中的reversed方法是一樣的
>>> reversed([1,2,3,4,5])
#變成一個疊代器
>>> for i in reversed([1,2,3,4,5]):
... print(i)
...
5
4
3
2
1
55、round(number[, ndigits])
功能:保留float資料類型位數
>>> round(1.23344,2) #保留兩位
1.23
56、set([iterable])
功能:集合,詳細請見:猛擊這裡
57、setattr(object, name, value)
功能:這個是講到類那邊才用到的
58、slice(stop),slice(start, stop[, step])
功能:序列的切片
>>> a = [1,2,3,4,5,6]
>>> a[slice(1,3)]
[2, 3]
>>> a[1:3]
[2, 3]
59、sorted(iterable[, key][, reverse])
功能:對一個序列進行排序
>>> sorted([5,3,2,6,8])
[2, 3, 5, 6, 8]
>>> a = {1:5,6:8,3:6}
>>> sorted(a) #預設是按key排序
[1, 3, 6]
>>> sorted(a.items()) #按key排序
[(1, 5), (3, 6), (6, 8)]
>>> sorted(a.items(),key = lambda x:x[1]) #按value排序
[(1, 5), (3, 6), (6, 8)]
60、 str(object)
功能:把其他資料類型轉換為字元串
>>> str(1)
'1'
61、sum(iterable[, start])
功能:求一個清單的和
>>> sum([1,2,3,4,5,6])
21
62、super([type[, object-or-type]])
功能:這個是類的繼承,後續會講
63、tuple([iterable])
功能:把其他序列轉換為一個元組
>>> tuple([1,2,3,4,5])
(1, 2, 3, 4, 5)
64、type(object) 、type(name, bases, dict)
功能:檢視一個對象的資料類型
>>> a = 'zhangqigao'
>>> type(a)
注:一切資料類型都是有type()方法産生,它是一切資料類型的根。
65、vars([object])
功能:傳回對象的所有屬性
66、zip(*iterables)
功能:zip中文意思是拉鍊的意思,把兩個序列一一對應起來。
>>> a = [1,2,3,4]
>>> b=['a','b','c','d']
>>> for i in zip(a,b):
... print(i)
...
(1, 'a')
(2, 'b')
(3, 'c')
(4, 'd')
注:如果a的元素比b的多,則按照元素最少的那個來
67、__import__(name, globals=None, locals=None, fromlist=(), level=0)
功能:當導入的子產品是一個字元串時,用__import__()
>>> import os
>>> __import__('os')
68、hasattr()
69、staticmethod()