当前位置: 首页 > 图灵资讯 > 行业资讯> 什么是python内置函数

什么是python内置函数

发布时间:2025-04-06 15:55:40

python的内置函数截止python版本3.6.2.现在python已经为我们提供了68个内置函数。它们是python提供给您可以直接使用的所有函数。今天我们来看看python的内置函数。

为了便于记忆,许多开发人员对这些内置函数进行了分类:

·数学运算(7)

·类型转换(24)

·序列操作(8)

·对象操作(7)

·反射操作(8)

·变量操作(2)

·交互操作(2)

·文件操作(1)

·编译执行(4)

·装饰器(3)

接下来,我们来看看每个特定类别中包含的内置函数。

相关推荐:Python视频教程

每个函数的具体分析如下:

数学运算

·abs:求数值的绝对值

>>>abs(-2)
2

·pmod:商和余数返回两个值

>>>pmod(5,2)
(2,1)
>>pmod(5.5,2)
(2.0,1.5)

·max:返回可迭代对象中元素的值或所有参数的值

>>>max(1,2,3)#输入三个参数,选择三个中较大的参数
3
>>>max('1234')#引入一个可迭代对象,取其元素值
'4'
>>>max(-1,0)#默认数值较大的人
0
>>>max(-1,0,key=abs)#如果传入了求绝对值函数,则参数会求绝对值,然后取较大的函数。
-1

·min:返回可迭代对象中元素的最小值或所有参数的最小值

>>>min(1,2,3)#三个参数被引入三个较小的参数
1
>>>min('1234')#引入一个可迭代对象,取其最小元素值
'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\xb8xadxe6\x96\x87#;)

·bytes:根据输入的参数创建一个新的不可变字节数组

>>>bytes('中文','utf-8')
b'xe4\xb8xadxe6\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,2,3,4,5,6,7,8

·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的元素
[1、2、2、3、4、5、6、7、8、9][1、2、3、4、5、6、7、8、9]
>>>

·iter:根据输入参数创建新的可迭代对象

>>>a=iter('abcd')#字符串序列
>>>a
<str_iteratorobjectat0x03FB4>
>>>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定义
>>>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
>>>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'

序列操作

·all:判断可迭代对象的每个元素是否为True值

>>>all([1,2])#列表中每个元素的逻辑值都是True,返回True
True
>>>all(0,1,2])#列表中0的逻辑值为False,返回False
False
>>>all()#空元组
True
>>>all({})#空字典
True

·any:判断可迭代对象的元素是否是True值的元素

>>>any(0,1,2])#如果列表元素中有一个是True,则返回True
True
>>>any([0,0])#所有列表元素都是False,然后返回False
False
>>>any([])#空列表
False
>>>any({})#空字典
False

·filter:用指定的方法过滤可迭代对象的元素

>>>a=list(range(1,10)#定义序列
>>>a
[1,2,3,4,5,6,7,8]
>>>defif_odd(x):#定义奇数判断函数
returnx%2==1
>>>list(filter(if_odd,a))#对序列中的奇数进行筛选
[1,3,5,7,9]

·map:每个可迭代对象的元素都是用指定的方法作用的,产生新的可迭代对象

>>>a=map(ord,'abcd')
>>>a
<mapobjectat0x094>
>>>list(a)
[97,98,99,100]

·next:返回可迭代对象中的下一个元素值

>>>a=iter('abcd')
>>>next(a)
'a'
>>>next(a)
'b'
>>>next(a)
'c'
>>>next(a)
'd'
>>>next(a)
Traceback(mostrecentcalllast):
File"<pyshell#18>",line1,in<module>
next(a)
StopIteration
#引入default参数后,如果可迭代对象和元素未返回,则依次返回其元素值。如果所有元素都返回,则返回default指定的元素
默认值不抛出Stopiteration异常
>>>next(a,'e')
'e'
>>>next(a,'e')
'e'

·reversed:反转序列生成新的可迭代对象

>>>a=reversed(range(10)#输入range对象
>>>a#类型变成迭代器
<range_iteratorobjectat00003564E8>
>>>list(a)
[9,8,7,6,5,4,3,2,1

·sorted:对可迭代对象进行排序,并返回新列表

>>>a=['a','b','d','c','B','A']
>>>a
['a','b','d','c','B','A']
>>>sorted(a)#默认情况下,按字符asciii码排序
['A','B','a','b','c','d']
>>>sorted(a,key=str.lower)#转换成小写,然后排序,'a'和'A'价值相同,'b'和'B'值一样
['a','A','b','B','c','d']

·zip:在每个迭代器中聚合相同位置的元素,返回一个新的元组类型迭代器

>>>x=长度33[1,2,3]
>>>y=长度55,5,6,7,8
>>>list(zip(x,y))#取最小长度3
(1,4),(2,5),(3,6)

对象操作

·help:返回对象的帮助信息

>>>help(str)
Helponclassstrinmodulebuiltins:
classstr(object)
|str(object='')->str
|str(bytes_or_buffer[,encoding[,errors]])->str
|
|Createanewstringobjectfromthegivenobject.Ifencodingor
|errrorsisspecified,thentheobjectmustexposeadatabuffer
|thatwillbedecoderrorhandlerhandlersinginencodingander.
|Otherwise,returnstheresultofobject.__str__()(ifdefined)
|orepr(object).
|encodingdefaltstossystos.getdefaultencoding().
|errorsdefaultsto'strict'.
|
|Methodsdefinedher:
|
|__add__(self,value,/)
|Returnself+value.
|
***************************

·dir:返回对象或当前作用域的属性列表

>>>importmath
>>>math
<module'math'(built-in)>
>>>dir(math)
['__doc__','__loader__','__name__','__package__','__spec__','acos','acosh','asin','asinh','atan',
'atan2','atanh','ceil','copysign','cos','cosh','degrees','e','erf','erfc','exp','expm1',
'fabs','factorial','floor','fmod','frexp','fsum','gamma','gcd','hypot','inf','isclose',
'isfinite','isinf','isnan','ldexp','lgamma','log','log10','log1p','log2','modf','nan','pi',
'pow','radians','sin','sinh','sqrt','tan','tanh','trunc']

·id:返回对象的唯一标志符

>>>a='sometext'
>>>id(a)
69228568
hash:获取对象的哈希值
>>>hash('goodgoodstudy')
1032709256

·type:返回对象的类型,或根据输入参数创建新类型

>>>type(1)#返回对象类型
<class'int'>
#使用type函数创建类型D,包含属性Infod
>>>D=type('D',(A,B),dict(InfoD='somethingdefinedinD'))
>>>d=D()
>>>d.InfoD
'somethingdefinedinD'

·len:返回对象的长度

>>>len('abcd')#字符串
>>>len(bytes('abcd','utf-8'))#字节数组
>>>len(1,2,3,4)#元组
>>>len(1,2,3,4)#列表
>>>len(range(1)5)#range对象
>>>len({'a':1,'b':2,'c':3,'d':4})#字典
>>>len({'a','b','c','d'})#集合
>>>len(frozenset('abcd'))#不可变集合

·ascii:可打印表字符串返回对象的表达方式

>>>ascii(1)
'1'
>>>ascii('&')
"'&'"
>>>ascii(9000000)
'9000000'
>>>ascii('中文')#非ascii字符
"'\\u4e2d\\u6587'"

·format:格式化显示值

#可提供的参数'字符串;s'None
>>>format('somestring','s')
'somestring'
>>>format('somestring')
'somestring'
#整形手术值可以提供'参数;b''c''d''o''x''X''n'None
>>>format(3,'b')#转化为二进制
'11'
>>>format(97,'c')#转换unicode成字符
'a'
>>>format(11,'d')#转换成10进制
'11'
>>>format(11,'o')#转换成8进制
'13'
>>>format(11,'x')#转换成16进制小写字母表示
'b'
>>>format(11,'X')#将其转换为16进制大写字母表示
'B'
>>>format(11,'n')#和d一样
'11'
>>>format(11)#默认与d相同
'11'
#可以提供的浮点数参数有'e''E''f''F''g''G''n''%'None
>>>format(314159267,'e')#科学计数法,默认情况下保留6位小数
'3.141593e+08'
>>>format(314159267,'0.2e')#指定保留两位小数的科学计数法
'3.14e+08'
>>>format(314159267,'0.2E')#指定保留两位小数的科学计数法,采用大写E表示
'3.14E+08'
>>>format(314159267,'f')#小数点计数法,默认保留6位小数
'314159267.000000'
>>>format(3.14159267000,'f')#默认保留6位小数点计数法
'3.141593'
>>>format(3.14159267000,'0.8f')#小数点计数法指定保留8位小数
'3.14159267'
>>>format(3.14159267000,'0.10f')#小数点计数法,指定保留10位小数
'3.1415926700'
>>>format(3.14e+1000000,'F')#小数点计数法无限大地转换为大小字母
'INF'
#g的格式化比较特殊。假设p是格式中指定的保留小数位数,如果-4,试着采用科学的计数法格式化来获得动力指数exp<=exp<p,
采用小数计数法,保留p-1-exp位小数,否则按小数计数法计数,按p-1保留小数位数
>>>format(0.00003141566,'.1g')#p=1,exp=-5==》-4<=exp<p不成立,按科学计数法计数,保留0位小数点
'3e-05'
>>>format(0.00003141566,'.2g')#p=1,exp=-5==》-4<=exp<p不成立,按科学计数法计数,保留一位小数点
'3.1e-05'
>>>format(0.00003141566,'.3g')#p=1,exp=-5==》-4<=exp<p不成立,按科学计数法计数,保留2位小数点
'3.14e-05'
>>>format(0.00003141566,'.3G')#p=1,exp=-5==》-4<=exp<p不成立,按科学计数法计数,保留0位小数点,E使用大写
'3.14E-05'
>>>format(3.1415926777,'.1g')#p=1,exp=0==》-4<=exp<p成立,按小数计数法计数,保留0位小数点
'3'
>>>format(3.1415926777,'.2g')#p=1,exp=0==》-4<=exp<p成立,按小数计数法计数,保留一位小数点
'3.1'
>>>format(3.1415926777,'.3g')#p=1,exp=0==》-4<=exp<p成立,按小数计数法计数,保留2位小数点
'3.14'
>>>format(0.00003141566,'.1n')#和g相同
'3e-05'
>>>format(0.00003141566,'.3n')#和g相同
'3.14e-05'
>>>format(0.0003141566)#与g相同
'3.141566e-05'

·vars:返回当前作用域的局部变量及其值组成的字典,或返回对象的属性列表

#作用于类实例
>>>classA(object):
pass
>>>a.__dict__
{}
>>>vars(a)
{}
>>>a.name='Kim'
>>>a.__dict__
{'name':'Kim'}
>>>vars(a)
{'name':'Kim'}

反射操作

·__import__:动态导入模块

index=__import__('index')
index.sayHello()

·isinstance:判断对象是否是类型元组中任何类型元素的实例

>>>isinstance(1,int)
True
>>>isinstance(1,str)
False
>>>isinstance(1,(int,str))
True

·issubclass:判断类是否是另一类或类型元组中任何类型元素的子类

>>>issubclass(bool,int)
True
>>>issubclass(bool,str)
False
>>>issubclass(bool,(str,int))
True

·hasattr:检查对象是否含有属性

#定义类A
>>>classStudent:
def__init__(self,name):
self.name=name

>>>s=Student('Aim')
>>>hasattr(s,'name')#含name属性的a
True
>>>hasattr(s,'age')#a不含age属性
False

·getattr:获取对象的属性值

#Studenttt定义
>>>classStudent:
def__init__(self,name):
self.name=name
>>>getattr(s,'name')#属性name存在
'Aim'
>>>getattr(s,'age',6)#没有属性age,但提供默认值,返回默认值
>>>getattr(s,'age')#没有属性age,未提供默认值,调用错误报告
Traceback(mostrecentcalllast):
File"<pyshell#17>",line1,in<module>
getattr(s,'age')
AttributeError:'Stduent'objecthasnoattribute'age'

·setattr:设置对象的属性值

>>>classStudent:
def__init__(self,name):
self.name=name

>>>a=Student('Kim')
>>>a.name
'Kim'
>>>setattr(a,'name','Bob')
>>>a.name
'Bob'

·delattr:删除对象的属性

#定义类A
>>>classA:
def__init__(self,name):
self.name=name
defsayHello(self):
print('hello',self.name)
#测试属性和方法
>>>a.name
'小麦'
>>>a.sayHello()
hello小麦
#删除属性
>>>delattr(a,'name')
>>>a.name
Traceback(mostrecentcalllast):
File"<pyshell#47>",line1,in<module>
a.name
AttributeError:'A'objecthasnoattribute'name'

·callable:检测对象是否可以调用

>>>classB:#定义类B
def__call__(self):
print('instancesarecallablenow.')

>>>callable(B)#B类是可调对象
True
>>>b=B()#调用B
>>>callable(b)#实例b是可调用对象
True
>>>b()#成功调用实例b
instancesarecallablenow.

变量操作

·globals:返回字典,字典由当前作用域内的全局变量及其值组成

>>>globals()
{'__spec__':None,'__package__':None,'__builtins__':<module'builtins'(built-in)>,'__name__':
'__main__','__doc__':None,'__loader__':<class'_frozen_importlib.BuiltinImporter'>}
>>>a=1
>>>globals()#多了一个a
{'__spec__':None,'__package__':None,'__builtins__':<module'builtins'(built-in)>,'a':1,'__name__':
'__main__','__doc__':None,'__loader__':<class'_frozen_importlib.BuiltinImporter'>}

·locals:由当前作用域的局部变量和其值组成的字典返回

>>>deff():
print('beforedefinea')
print(locals()#作用域内无变量
a=1
print('afterdefinea')
print(locals()#作用域内有a变量,值为1

>>>f
<functionfat0x03D4>
>>>f()
beforedefinea
{}
afterdefinea
{'a':1}

交互操作

·print:打印输出输出标准输出对象

>>>print(1,2,3)
123
>>>print(1,2,3,sep='+')
1+2+3
>>>print(1,2,3,sep='+',end='=?')
1+2+3=?

·input:读取用户输入值

>>>s=input('pleaseinputyourname:')
pleaseinputyourname:Ain
>>>s
'Ain'

文件操作

·open:使用指定的模式和代码打开文件,然后返回文件读写对象

#t为文本读写,b为二进制读写
>>>a=open('test.txt','rt')
>>>a.read()
'sometext'
>>>a.close()

编译执行

·compile:将字符串编译成代码或AST对象,使其能够通过exec语句执行或eval进行求值

>>>#使用exec流程语句。
>>>code1='foriinrange(0,10):print(i)'
>>>compile1=compile(code1,'','exec')
>>>exec(compile1)
0
1
2
3
4
5
6
7
8
9
>>>#简单的求值表达使用eval
>>>code2='1+2+3+4'
>>>compile2=compile(code2,'','eval')
>>>eval(compile2)
10

·eval:动态表达式执行求值

>>>eval('1+2+3+4')
10

·exec:执行动态句块

>>>exec('a=1+2')#执行语句
>>>a
3

·repr:返回一个对象的字符串表达形式(给解释器)

>>>a='sometext'
>>>str(a)
'sometext'
>>>repr(a)
"'sometext'"

装饰器

·property:装饰器上标有属性

>>>classC:
def__init__(self):
self._name=''
@property
defname(self):
"""i'mthe'name'property."""
returnself._name
@name.setter
defname(self,value):
ifvalueisNone:
raiseRuntimeError('namecannotbeNone')
else:
self._name=value

>>>c=C()
>>>c.name#访问属性
''
>>>c.name=None#验证设置属性时
Traceback(mostrecentcalllast):
File"<pyshell#84>",line1,in<module>
c.name=None
File"<pyshell#81>",line11,inname
raiseRuntimeError('namecannotbeNone')
RuntimeError:namecannotbeNone
>>>c.name='Kim'#设置属性
>>>c.name#访问属性
'Kim'
>>>delc.name#删除属性,不提供deleter就不能删除
Traceback(mostrecentcalllast):
File"<pyshell#87>",line1,in<module>
delc.name
AttributeError:can'tdeleteattribute
>>>c.name
'Kim'

·classmethod:装饰器的标记方法是装饰方法的类别

>>>classC:
@classmethod
deff(cls,arg1):
print(cls)
print(arg1)

>>>C.f('类对象调用方法')
<class'__main__.C'>
类对象调用类方法
>>>c=C()
>>>c.f('类实例对象调用方法')
<class'__main__.C'>
类实例对象调用方法

·staticmethod:装饰器的标记方法是静态方法

#使用装饰定义静态方法
>>>classStudent(object):
def__init__(self,name):
self.name=name
@staticmethod
defsayHello(lang):
print(lang)
iflang=='en':
print('Welcome!')
else:
print('你好!')

>>>Student.sayHello('en')#类调用,'en'将lang参数传递给lang
en
Welcome!
>>>b=Student('Kim')
>>>b.sayHello('zh')#类实例对象调用'zh'将lang参数传递给lang
zh
你好

相关文章

python3兼容python2吗

python3兼容python2吗

2025-05-09
python3 whl怎么安装

python3 whl怎么安装

2025-05-09
python 字典怎么提取value

python 字典怎么提取value

2025-05-09
python 怎样计算字符串的长度

python 怎样计算字符串的长度

2025-05-09
python 怎么样反向输出字符串

python 怎么样反向输出字符串

2025-05-09
python 怎么判断字符串开头

python 怎么判断字符串开头

2025-05-09