內置函數,正在整理中。
Python3中的68個內置函數,我必須要好好總結下。以下是參考文獻及大神的博客和自己理解的總結分類。
內置函數大體分為數學運算,類型轉換,序列操作,對象操作,反射操作,變量操作,交互操作,文件操作,編譯執行,裝飾器。
數學運算(7個)
abs:求數值的絕對值
>>>print(abs(-2))
2
divmod:返回兩個數值的商和余數
>>>ret = divmod(5,2) ##下面省略賦值打印
>>>print(ret) (2,1) >>>divmod(5,5,2) (2.0,1.5)
max:返回可叠代對象中的元素中的最大值或者所有參數的最大值
>>> max(1,2,3) # 傳入3個參數 取3個中較大者 >>> max(‘1234‘) # 傳入1個可叠代對象,取其最大元素值 ‘4‘ >>> max(-1,0) # 數值默認去數值較大者 >>> max(-1,0,key = abs) # 傳入了求絕對值函數,則參數都會進行求絕對值後再取較大者 -1
min:返回可叠代對象中的元素中的最小值或者所有參數的最小值
>>> min(1,2,3) # 傳入3個參數 取3個中較小者 >>> min(‘1234‘) # 傳入1個可叠代對象,取其最小元素值‘1‘ >>> min(-1,-2) # 數值默認去數值較小者 -2 >>> min(-1,-2,key = abs) # 傳入了求絕對值函數,則參數都會進行求絕對值後再取較小者 -1
pow:返回兩個數值的冪運算值或其與指定整數的模值
>>> pow(2,3) >>> 2**3 >>> pow(2,3,5) >>> pow(2,3)%5
round:對浮點數進行四舍五入求值
>>> round(1.1314926,1) 1.1 >>> round(1.1314926,5)1.13149
sum:對元素類型是數值的可叠代對象中的每個元素求和
# 傳入可叠代對象 >>> sum((1,2,3,4)) # 元素類型必須是數值型 >>> sum((1.5,2.5,3.5,4.5)) 12.0 >>> sum((1,2,3,4),-10)
0
類型轉換(24)
bool:根據傳入的參數的邏輯創建一個新的bool值
>>> bool() #未傳入參數 False >>> bool(0) #數值0、空序列等值為False False >>> bool(1) True
int:根據傳入的參數創建一個新的整數
>>> int() #不傳入參數時,得到結果0。 0 >>> int(3) 3 >>> int(3.6) 3
float:根據傳入的參數創建一個新的浮點數
>>> float() #不提供參數的時候,返回0.0 0.0 >>> float(3) 3.0 >>> float(‘3‘) 3.0
complex:根據傳入參數創建一個新的復數
>>> complex() #當兩個參數都不提供時,返回復數 0j。 0j >>> complex(‘1+2j‘) #傳入字符串創建復數 (1+2j) >>> complex(1,2) #傳入數值創建復數 (1+2j)
str:返回一個對象的字符串表現形式(給用戶)
>>> str() ‘‘ >>> str(None) ‘None‘ >>> str(‘abc‘) ‘abc‘ >>> str(123) ‘123‘
bytearray:根據傳入的參數創建一個新的字節數組
>>> bytearray(‘中文‘,‘utf-8‘) bytearray(b‘\xe4\xb8\xad\xe6\x96\x87‘)
bytes:根據傳入的參數創建一個新的不可變字節數組
>>> bytes(‘中文‘,‘utf-8‘) b‘\xe4\xb8\xad\xe6\x96\x87‘
menmoryview:根據傳入的參數創建一個新的內存查看對象
>>> v = memoryview(b‘abcefg‘) >>> v[1] 98 >>> v[-1] 103
ord:返回Unicode字符對應的整數
>>> ord(‘a‘) 97
chr:返回整數所對應的Unicode字符
>>> chr(97) #參數類型為整數 ‘a‘
bin:將整數轉換成2進制值字符串
>>> bin(3) ‘0b11‘
oct:將整數轉化成8進制字符串
>>> oct(10) ‘0o12‘
hex:將整數轉換成16進制字符串
>>> hex(15) ‘0xf‘
tuple:根據傳入的參數創建一個新的元組
>>> tuple() #不傳入參數,創建空元組 () >>> tuple(‘121‘) #傳入可叠代對象。使用其元素創建新的元組 (‘1‘, ‘2‘, ‘1‘)
list:根據傳入的參數創建一個新的列表
>>>list() # 不傳入參數,創建空列表 [] >>> list(‘abcd‘) # 傳入可叠代對象,使用其元素創建新的列表 [‘a‘, ‘b‘, ‘c‘, ‘d‘]
dict:根據傳入的參數創建一個新的字典
>>> dict() # 不傳入任何參數時,返回空字典。 {} >>> dict(a = 1,b = 2) # 可以傳入鍵值對創建字典。 {‘b‘: 2, ‘a‘: 1} >>> dict(zip([‘a‘,‘b‘],[1,2])) # 可以傳入映射函數創建字典。 {‘b‘: 2, ‘a‘: 1} >>> dict(((‘a‘,1),(‘b‘,2))) # 可以傳入可叠代對象創建字典。 {‘b‘: 2, ‘a‘: 1}
set:根據傳入的參數創建一個新的集合
>>>set() # 不傳入參數,創建空集合 set() >>> a = set(range(10)) # 傳入可叠代對象,創建集合 >>> a {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
frozenset:根據傳入的參數創建一個新的不可變集合
>>> a = frozenset(range(10)) >>> a frozenset({0, 1, 2, 3, 4, 5, 6, 7, 8, 9})
enumerate:根據可叠代對象創建枚舉對象
>>> 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‘)]
range:根據傳入的參數創建一個新的range對象
>>> a = range(10) >>> b = range(1,10) >>> c = range(1,10,3) >>> a,b,c # 分別輸出a,b,c (range(0, 10), range(1, 10), range(1, 10, 3)) >>> list(a),list(b),list(c) # 分別輸出a,b,c的元素 ([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 4, 7]) >>>
iter:根據傳入的參數創建一個新的可叠代對象
>>> a = iter(‘abcd‘) #字符串序列 >>> a <str_iterator object at 0x03FB4FB0> >>> next(a) ‘a‘ >>> next(a) ‘b‘ >>> next(a) ‘c‘ >>> next(a) ‘d‘ >>> next(a) Traceback (most recent call last): File "<pyshell#29>", line 1, in <module> next(a) StopIteration
slice:根據傳入的參數創建一個新的切片對象
>>> c1 = slice(5) # 定義c1 >>> c1 slice(None, 5, None) >>> c2 = slice(2,5) # 定義c2 >>> c2 slice(2, 5, None) >>> c3 = slice(1,10,3) # 定義c3 >>> c3 slice(1, 10, 3)
super:根據傳入的參數創建一個新的子類和父類關系的代理對象
#定義父類A >>> class A(object): def __init__(self): print(‘A.__init__‘) #定義子類B,繼承A >>> class B(A): def __init__(self): print(‘B.__init__‘) super().__init__() #super調用父類方法 >>> b = B() B.__init__ A.__init__
object:創建一個新的object對象
>>> a = object() >>> a.name = ‘kim‘ # 不能設置屬性 Traceback (most recent call last): File "<pyshell#9>", line 1, in <module> a.name = ‘kim‘ AttributeError: ‘object‘ object has no attribute ‘name‘
序列操作
內置函數,正在整理中。