编程语言中预先定义的函数,例如在JS语言中、VB语言中、Java语言中、Python语言中、SQL语言中,都有内置函数。具体:嵌入到主调函数中的函数称为内置函数,又称内嵌函数。 所以,针对Python来说,Python解释器自带的函数叫做内置函数,这些函数可以直接使用,不需要导入某个模块。
python内置函数有:abs、divmod、max、min、pow、round、sum、bool、int、float、complex、str、bytearray、bytes、memoryview、ord、oct、tuple、map等等。
内置函数分类
- 数学运算(7个)
- 类型转换(24个)
- 序列操作(8个)
- 对象操作(7个)
- 反射操作(8个)
- 变量操作(2个)
- 交互操作(2个)
- 文件操作(1个)
- 编译执行(4个)
- 装饰器(3个)
1 数学运算
abs:求数值的绝对值
>>>abs(-2) 2
pmod:返回两个数值的商和余数
>>>pmod(5,2) (2, 1) >>pmod(5.5,2) (2.0, 1.5)
max/min:返回可迭代对象中的元素中的最大值/最小值或者所有参数的最大值/最小值
>>>max(1,2,3) # 传入3个参数 取3个中较大者3>>>max('1234') # 传入1个可迭代对象,取其最大元素值'4'>>>max(-1,0) # 数值默认去数值较大者0>>>max(-1,0,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
2 类型转换
bool:根据传入的参数的逻辑值创建一个新的布尔值
>>>bool() #未传入参数False>>>bool(0) #数值0、空序列等值为FalseFalse>>>bool(1) True
int:根据传入的参数创建一个新的整数
>>>int() #不传入参数时,得到结果0。0>>>int(3) 3>>>int(3.6) 3
float:根据传入的参数创建一个新的浮点数
>>>float() #不提供参数的时候,返回0.00.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)) >>>afrozenset({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_iteratorobjectat0x03FB4FB0>>>>next(a) 'a'>>>next(a) 'b'>>>next(a) 'c'>>>next(a) 'd'>>>next(a) Traceback (mostrecentcalllast): File"<pyshell#29>", line1, in<module>next(a) StopIteration
slice:根据传入的参数创建一个新的切片对象
>>>c1=slice(5) # 定义c1>>>c1slice(None, 5, None) >>>c2=slice(2,5) # 定义c2>>>c2slice(2, 5, None) >>>c3=slice(1,10,3) # 定义c3>>>c3slice(1, 10, 3)
super:根据传入的参数创建一个新的子类和父类关系的代理对象
#定义父类A>>>classA(object): def__init__(self): print('A.__init__') #定义子类B,继承A>>>classB(A): def__init__(self): print('B.__init__') super().__init__() #super调用父类方法>>>b=B() B.__init__A.__init__
object:创建一个新的object对象
>>>a=object() >>>a.name='kim'# 不能设置属性Traceback (mostrecentcalllast): File"<pyshell#9>", line1, in<module>a.name='kim'AttributeError: 'object'objecthasnoattribute'name'
注意⚠️:当前操作实验环境为 MacOS Monterey 12.6 、Python 3.10.1 。不同的分类或者叫法不一致,这个请酌情参考。其他版本略有更改,请留意。