Python内置函数查询表——总结篇
Python3.5版本中的68个内置函数,按顺序逐个进行了自认为详细的解析,现在是时候进行个总结了。为了方便记忆,将这些内置函数进行了如下分类:
-
数学运算(7个)
-
类型转换(24个)
-
序列操作(8个)
-
对象操作(7个)
-
反射操作(8个)
-
变量操作(2个)
-
交互操作(2个)
-
文件操作(1个)
-
编译执行(4个)
-
装饰器(3个)
数学运算
-
abs:求数值的绝对值
-
>>> abs(-2) 2
♦ divmod:返回两个数值的商和余数abs:求数值的绝对值
-
>>> divmod(5,2) (2, 1) >> divmod(5.5,2) (2.0, 1.5)
♦ max:返回可迭代对象中的元素中的最大值或者所有参数的最大值
-
>>> max(1,2,3) # 传入3个参数 取3个中较大者 3 >>> max('1234') # 传入1个可迭代对象,取其最大元素值 '4' >>> max(-1,0) # 数值默认去数值较大者 0 >>> max(-1,0,key = abs) # 传入了求绝对值函数,则参数都会进行求绝对值后再取较大者 -1
♦ min:返回可迭代对象中的元素中的最小值或者所有参数的最小值
-
>>> min(1,2,3) # 传入3个参数 取3个中较小者 1 >>> 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)) 10 # 元素类型必须是数值型 >>> sum((1.5,2.5,3.5,4.5)) 12.0 >>> sum((1,2,3,4),-10) 0
类型转换
♦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'
♦ memoryview:根据传入的参数创建一个新的内存查看对象
>>> 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'
序列操作
未完待续。。。。。。。