小编给大家分享一下关于Python中内置函数的用法,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!

Python内置的函数及其用法。为了方便记忆,已经有很多开发者将这些内置函数进行了如下分类:

·数学运算(7个)

·类型转换(24个)

·序列操作(8个)

·对象操作(7个)

·反射操作(8个)

·变量操作(2个)

·交互操作(2个)

·文件操作(1个)

·编译执行(4个)

·装饰器(3个)

接下来看看具体每个类别里包含了那些内置函数

一、数学运算类

二、集合类操作

三、逻辑判断

四、反射

五、IO操作

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

数学运算

abs:求数值的绝对值

>>>abs(-2)2

divmod:返回两个数值的商和余数

>>>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、空序列等值为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'

序列操作

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

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

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

>>>any([0,1,2])#列表元素有一个为True,则返回TrueTrue>>>any([0,0])#列表元素全部为False,则返回FalseFalse>>>any([])#空列表False>>>any({})#空字典False

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

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

map:使用指定方法去作用传入的每个可迭代对象的元素,生成新的可迭代对象

>>>a=map(ord,'abcd')>>>a<mapobjectat0x03994E50>>>>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_iteratorobjectat0x035634E8>>>>list(a)[9,8,7,6,5,4,3,2,1,0]

sorted:对可迭代对象进行排序,返回一个新的列表

>>>a=['a','b','d','c','B','A']>>>a['a','b','d','c','B','A']>>>sorted(a)#默认按字符ascii码排序['A','B','a','b','c','d']>>>sorted(a,key=str.lower)#转换成小写后再排序,'a'和'A'值一样,'b'和'B'值一样['a','A','b','B','c','d']

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

>>>x=[1,2,3]#长度3>>>y=[4,5,6,7,8]#长度5>>>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|errorsisspecified,thentheobjectmustexposeadatabuffer|thatwillbedecodedusingthegivenencodinganderrorhandler.|Otherwise,returnstheresultofobject.__str__()(ifdefined)|orrepr(object).|encodingdefaultstosys.getdefaultencoding().|errorsdefaultsto'strict'.||Methodsdefinedhere:||__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')#科学计数法,指定保留2位小数'3.14e+08'>>>format(314159267,'0.2E')#科学计数法,指定保留2位小数,采用大写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为格式中指定的保留小数位数,先尝试采用科学计数法格式化,得到幂指数exp,如果-4<=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不成立,按科学计数法计数,保留1位小数点'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成立,按小数计数法计数,保留1位小数点'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.00003141566)#和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')#a含有name属性True>>>hasattr(s,'age')#a不含有age属性False

getattr:获取对象的属性值

#定义类Student>>>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=namedefsayHello(self):print('hello',self.name)#测试属性和方法>>>a.name'小麦'>>>a.sayHello()hello小麦#删除属性>>>delattr(a,'name')>>>a.nameTraceback(mostrecentcalllast):File"<pyshell#47>",line1,in<module>a.nameAttributeError:'A'objecthasnoattribute'name'

callable:检测对象是否可被调用

>>>classB:#定义类Bdef__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=1print('afterdefinea')print(locals())#作用域内有一个a变量,值为1>>>f<functionfat0x03D40588>>>>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)0123456789>>>#简单求值表达式用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')#执行语句>>>a3

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

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

装饰器

property:标示属性的装饰器

>>>classC:def__init__(self):self._name=''@propertydefname(self):"""i'mthe'name'property."""returnself._name@name.setterdefname(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=NoneFile"<pyshell#81>",line11,innameraiseRuntimeError('namecannotbeNone')RuntimeError:namecannotbeNone>>>c.name='Kim'#设置属性>>>c.name#访问属性'Kim'>>>delc.name#删除属性,不提供deleter则不能删除Traceback(mostrecentcalllast):File"<pyshell#87>",line1,in<module>delc.nameAttributeError:can'tdeleteattribute>>>c.name'Kim'

classmethod:标示方法为类方法的装饰器

>>>classC:@classmethoddeff(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@staticmethoddefsayHello(lang):print(lang)iflang=='en':print('Welcome!')else:print('你好!')>>>Student.sayHello('en')#类调用,'en'传给了lang参数enWelcome!>>>b=Student('Kim')>>>b.sayHello('zh')#类实例对象调用,'zh'传给了lang参数zh你好

看完了这篇文章,相信你对关于Python中内置函数的用法有了一定的了解,想了解更多相关知识,欢迎关注亿速云行业资讯频道,感谢各位的阅读!