基本的python内置函数,Python 内置函数
Python的内置函数及其用法。为了方便记忆,很多开发者将这些内置函数分类如下:
数学运算(7)
式转换(24)
顺序操作(8)
行动(7)
反思行动(8)
变量运算(2)
互操作(2)
文件操作(1)
编译与执行(4)
装饰者(3件)
我们来看看每一类都包含了哪些内置函数。
一、数学运算类
二、集合类操作
三、逻辑判断
四、反射
五、IO操作
具体每个函数的解析如下:
数学运算
Abs:求值的绝对值
绝对误差(-2)
2divmod:返回两个数的商和余数。
divmod(5,2)
(2,1)
divmod(5.5,2)
(2.0,1.5)max:返回iterable对象中元素或所有参数的值。
Max(1,2,3)#取三个传入参数中较大的一个。
三
Max(1234)#传入1个iterable对象并获取其元素值。
4
Max(-1,0)#值默认为较大的值。
0
Max(-1,0,key=abs)#绝对值函数传入,所以会计算参数的绝对值然后取较大的一个。
-1min:返回iterable对象中元素的最小值或所有参数的最小值。
Min(1,2,3)#取三个传入参数中较小的一个。
任何人
Min(1234)#传入1个iterable对象并获取其最小元素值。
1
min(-1,-2)#值默认为较小的值。
-2
最小(-1,-2,key=abs)nbs
p;#传入了求绝对值函数,则参数都会进行求绝对值后再取较小者
-1pow:返回两个数值的幂运算值或其与指定整数的模值
>>>pow(2,3)round:对浮点数进行四舍五入求值>>>2**3
>>>pow(2,3,5)
>>>pow(2,3)%5
>>>round(1.1314926,1)sum:对元素类型是数值的可迭代对象中的每个元素求和1.1
>>>round(1.1314926,5)
1.13149
#传入可迭代对象类型转换>>>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()#未传入参数int:根据传入的参数创建一个新的整数False
>>>bool(0)#数值0、空序列等值为False
False
>>>bool(1)
True
>>>int()#不传入参数时,得到结果0。float:根据传入的参数创建一个新的浮点数0
>>>int(3)
3
>>>int(3.6)
3
>>>float()#不提供参数的时候,返回0.0complex:根据传入参数创建一个新的复数0.0
>>>float(3)
3.0
>>>float('3')
3.0
>>>complex()#当两个参数都不提供时,返回复数0j。str:返回一个对象的字符串表现形式(给用户)0j
>>>complex('1+2j')#传入字符串创建复数
(1+2j)
>>>complex(1,2)#传入数值创建复数
(1+2j)
>>>str()bytearray:根据传入的参数创建一个新的字节数组''
>>>str(None)
'None'
>>>str('abc')
'abc'
>>>str(123)
'123'
>>>bytearray('中文','utf-8')bytes:根据传入的参数创建一个新的不可变字节数组bytearray(b'\xe4\xb8\xad\xe6\x96\x87')
>>>bytes('中文','utf-8')memoryview:根据传入的参数创建一个新的内存查看对象b'\xe4\xb8\xad\xe6\x96\x87'
>>>v=memoryview(b'abcefg')ord:返回Unicode字符对应的整数>>>v[1]
98
>>>v[-1]
103
>>>ord('a')chr:返回整数所对应的Unicode字符97
>>>chr(97)#参数类型为整数bin:将整数转换成2进制字符串'a'
>>>bin(3)oct:将整数转化成8进制数字符串'0b11'
>>>oct(10)hex:将整数转换成16进制字符串'0o12'
>>>hex(15)tuple:根据传入的参数创建一个新的元组'0xf'
>>>tuple()#不传入参数,创建空元组list:根据传入的参数创建一个新的列表()
>>>tuple('121')#传入可迭代对象。使用其元素创建新的元组
('1','2','1')
>>>list()#不传入参数,创建空列表dict:根据传入的参数创建一个新的字典[]
>>>list('abcd')#传入可迭代对象,使用其元素创建新的列表
['a','b','c','d']
>>>dict()#不传入任何参数时,返回空字典。set:根据传入的参数创建一个新的集合{}
>>>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()#不传入参数,创建空集合frozenset:根据传入的参数创建一个新的不可变集合set()
>>>a=set(range(10))#传入可迭代对象,创建集合
>>>a
{0,1,2,3,4,5,6,7,8,9}
>>>a=frozenset(range(10))enumerate:根据可迭代对象创建枚举对象>>>a
frozenset({0,1,2,3,4,5,6,7,8,9})
>>>seasons=['Spring','Summer','Fall','Winter']range:根据传入的参数创建一个新的range对象>>>list(enumerate(seasons))
[(0,'Spring'),(1,'Summer'),(2,'Fall'),(3,'Winter')]
>>>list(enumerate(seasons,start=1))#指定起始值
[(1,'Spring'),(2,'Summer'),(3,'Fall'),(4,'Winter')]
>>>a=range(10)iter:根据传入的参数创建一个新的可迭代对象>>>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])
>>>
>>>a=iter('abcd')#字符串序列slice:根据传入的参数创建一个新的切片对象>>>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
>>>c1=slice(5)#定义c1super:根据传入的参数创建一个新的子类和父类关系的代理对象>>>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)
#定义父类Aobject:创建一个新的object对象>>>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__
>>>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,返回Trueany:判断可迭代对象的元素是否有为True值的元素True
>>>all([0,1,2])#列表中0的逻辑值为False,返回False
False
>>>all(())#空元组
True
>>>all({})#空字典
True
>>>any([0,1,2])#列表元素有一个为True,则返回Truefilter:使用指定方法过滤可迭代对象的元素True
>>>any([0,0])#列表元素全部为False,则返回False
False
>>>any([])#空列表
False
>>>any({})#空字典
False
>>>a=list(range(1,10))#定义序列map:使用指定方法去作用传入的每个可迭代对象的元素,生成新的可迭代对象>>>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]
>>>a=map(ord,'abcd')next:返回可迭代对象中的下一个元素值>>>a
<mapobjectat0x03994E50>
>>>list(a)
[97,98,99,100]
>>>a=iter('abcd')reversed:反转序列生成新的可迭代对象>>>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'
>>>a=reversed(range(10))#传入range对象sorted:对可迭代对象进行排序,返回一个新的列表>>>a#类型变成迭代器
<range_iteratorobjectat0x035634E8>
>>>list(a)
[9,8,7,6,5,4,3,2,1,0]
>>>a=['a','b','d','c','B','A']zip:聚合传入的每个迭代器中相同位置的元素,返回一个新的元组类型迭代器>>>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']
>>>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)dir:返回对象或者当前作用域内的属性列表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.
***************************
>>>importmathid:返回对象的唯一标识符>>>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']
>>>a='sometext'hash:获取对象的哈希值>>>id(a)
69228568
>>>hash('goodgoodstudy')type:返回对象的类型,或者根据传入的参数创建一个新的类型1032709256
>>>type(1)#返回对象的类型len:返回对象的长度<class'int'>
#使用type函数创建类型D,含有属性InfoD
>>>D=type('D',(A,B),dict(InfoD='somethingdefinedinD'))
>>>d=D()
>>>d.InfoD
'somethingdefinedinD'
>>>len('abcd')#字符串ascii:返回对象的可打印表字符串表现方式>>>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(1)format:格式化显示值'1'
>>>ascii('&')
"'&'"
>>>ascii(9000000)
'9000000'
>>>ascii('中文')#非ascii字符
"'\\u4e2d\\u6587'"
#字符串可以提供的参数's'Nonevars:返回当前作用域内的局部变量和其值组成的字典,或者返回对象的属性列表>>>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'
#作用于类实例反射操作>>>classA(object):
pass
>>>a.__dict__
{}
>>>vars(a)
{}
>>>a.name='Kim'
>>>a.__dict__
{'name':'Kim'}
>>>vars(a)
{'name':'Kim'}
__import__:动态导入模块
index=__import__('index')isinstance:判断对象是否是类或者类型元组中任意类元素的实例index.sayHello()
>>>isinstance(1,int)issubclass:判断类是否是另外一个类或者类型元组中任意类元素的子类True
>>>isinstance(1,str)
False
>>>isinstance(1,(int,str))
True
>>>issubclass(bool,int)hasattr:检查对象是否含有属性True
>>>issubclass(bool,str)
False
>>>issubclass(bool,(str,int))
True
#定义类Agetattr:获取对象的属性值>>>classStudent:
def__init__(self,name):
self.name=name
>>>s=Student('Aim')
>>>hasattr(s,'name')#a含有name属性
True
>>>hasattr(s,'age')#a不含有age属性
False
#定义类Studentsetattr:设置对象的属性值>>>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'
>>>classStudent:delattr:删除对象的属性def__init__(self,name):
self.name=name
>>>a=Student('Kim')
>>>a.name
'Kim'
>>>setattr(a,'name','Bob')
>>>a.name
'Bob'
#定义类Acallable:检测对象是否可被调用>>>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'
>>>classB:#定义类B变量操作def__call__(self):
print('instancesarecallablenow.')
>>>callable(B)#类B是可调用对象
True
>>>b=B()#调用类B
>>>callable(b)#实例b是可调用对象
True
>>>b()#调用实例b成功
instancesarecallablenow.
globals:返回当前作用域内的全局变量和其值组成的字典
>>>globals()locals:返回当前作用域内的局部变量和其值组成的字典{'__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'>}
>>>deff():交互操作print('beforedefinea')
print(locals())#作用域内无变量
a=1
print('afterdefinea')
print(locals())#作用域内有一个a变量,值为1
>>>f
<functionfat0x03D40588>
>>>f()
beforedefinea
{}
afterdefinea
{'a':1}
print:向标准输出对象打印输出
>>>print(1,2,3)input:读取用户输入值123
>>>print(1,2,3,sep='+')
1+2+3
>>>print(1,2,3,sep='+',end='=?')
1+2+3=?
>>>s=input('pleaseinputyourname:')文件操作pleaseinputyourname:Ain
>>>s
'Ain'
open:使用指定的模式和编码打开文件,返回文件读写对象
#t为文本读写,b为二进制读写编译执行>>>a=open('test.txt','rt')
>>>a.read()
'sometext'
>>>a.close()
compile:将字符串编译为代码或者AST对象,使之能够通过exec语句来执行或者eval进行求值
>>>#流程语句使用execeval:执行动态表达式求值>>>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('1+2+3+4')exec:执行动态语句块10
>>>exec('a=1+2')#执行语句repr:返回一个对象的字符串表现形式(给解释器)>>>a
3
>>>a='sometext'装饰器>>>str(a)
'sometext'
>>>repr(a)
"'sometext'"
property:标示属性的装饰器
>>>classC:classmethod:标示方法为类方法的装饰器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'
>>>classC:staticmethod:标示方法为静态方法的装饰器@classmethod
deff(cls,arg1):
print(cls)
print(arg1)
>>>C.f('类对象调用类方法')
<class'__main__.C'>
类对象调用类方法
>>>c=C()
>>>c.f('类实例对象调用类方法')
<class'__main__.C'>
类实例对象调用类方法
#使用装饰器定义静态方法盛行IT软件开发工作室,免费的在线学习python平台,欢迎关注!>>>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参数
en
Welcome!
>>>b=Student('Kim')
>>>b.sayHello('zh')#类实例对象调用,'zh'传给了lang参数
zh
你好
本文转自:https://blog.csdn.net/alice_tl/article/details/80867196
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。