python3内置函数大全
Posted 雨轩恋i
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python3内置函数大全相关的知识,希望对你有一定的参考价值。
由于面试的时候有时候会问到python的几个基本内置函数,由于记不太清,就比较难受,于是呕心沥血总结了一下python3的基本内置函数
Github源码: https://github.com/tyutltf/Python_funs
1.abs()函数
\'\'\' abs() 函数返回数字的绝对值。 绝对值:absolute 正如字面上的意思,可以返回一个绝对值 \'\'\' import math print(\'abs(45)的值:\',abs(45)) print(\'abs(-45)的值:\',abs(-45)) print(\'abs(45+23)的值:\',abs(45+23)) print(\'abs(math.pi)的值:\',abs(math.pi)) print(help(abs)) \'\'\' 运行结果: abs(45)的值: 45 abs(-45)的值: 45 abs(45+23)的值: 68 abs(math.pi)的值: 3.141592653589793 Help on built-in function abs in module builtins: abs(x, /) Return the absolute value of the argument. None 在python2 里还可以输出 print "abs(119L) : ", abs(119L) 不过python3中abs函数只能输入int型 不然会报错 \'\'\'
2.all()函数详解
\'\'\' all() 函数用于判断给定的可迭代参数 iterable 中的所有元素是否都为 TRUE,如果是返回 True,否则返回 False。 元素除了是 0、空、FALSE 外都算 TRUE。 语法 以下是 all() 方法的语法: all(iterable) 参数 iterable -- 元组或列表。 返回值 如果iterable的所有元素不为0、\'\'、False或者iterable为空,all(iterable)返回True,否则返回False; 注意:空元组、空列表返回值为True,这里要特别注意。 \'\'\' print(all([\'a\',\'b\',\'c\',\'\'])) #列表存在一个为空的元素,返回False print(all([\'a\',\'b\',\'c\',\'d\'])) #列表都有元素,返回True print(all([0,1,2,3,4,5,6])) #列表里存在为0的元素 返回False print(all((\'a\',\'b\',\'c\',\'\'))) #元组存在一个为空的元素,返回Fasle print(all((\'a\',\'b\',\'c\',\'d\'))) #元组都有元素,返回True print(all((0,1,2,3,4,5))) #元组存在一个为0的元素,返回Fasle print(all([])) #空列表返回 True print(all(())) #空元组返回 True
3.any()函数
\'\'\' any() 函数用于判断给定的可迭代参数 iterable 是否全部为 False,则返回 False,如果有一个为 True,则返回 True。 元素除了是 0、空、FALSE 外都算 TRUE。 语法 以下是 any() 方法的语法: any(iterable) 参数 iterable -- 元组或列表。 返回值 如果都为空、0、false,则返回false,如果不都为空、0、false,则返回true。 \'\'\' print(any([\'a\',\'b\',\'c\',\'\'])) #列表存在一个为空的元素,返回True print(any([\'a\',\'b\',\'c\',\'d\'])) #列表都不为空,返回True print(any([0,\'\',False])) #列表里的元素全为 0,\'\',False 返回False print(any((\'a\',\'b\',\'c\',\'\'))) #元组存在一个为空的元素,返回True print(any((\'a\',\'b\',\'c\',\'d\'))) #元组都有元素,返回True print(any((0,\'\',False))) #元组里的元素全为 0,\'\',False 返回False print(any([])) #空列表返回 False print(any(())) #空元组返回 False
4.ascii()函数
\'\'\' ascii() 函数类似 repr() 函数, 返回一个表示对象的字符串, 但是对于字符串中的非 ASCII 字符则返回通过 repr() 函数使用 \\x, \\u 或 \\U 编码的字符。 生成字符串类似 Python2 版本中 repr() 函数的返回值。 语法 以下是 ascii() 方法的语法: ascii(object) 参数 object -- 对象。 返回值 返回字符串 \'\'\' print(ascii(\'uiatfu\')) #报错 SyntaxError: (unicode error) \'unicodeescape\' codec can\'t decode bytes in position 427-428: truncated \\xXX escape #不知道为何
5.bin()函数
\'\'\' 函数原型 bin(x) 参数解释 x 整数型,参数不可为空。 返回值 <class \'str\'> 字符串类型,二进制整数。 函数说明 将一个整数转化为一个二进制整数,并以字符串的类型返回。 \'\'\' print(bin(12)) #输出12的二进制 0b1100 print(bin(-120)) #输出-12的二进制 -0b1111000 print(type(bin(12))) #输出bin(12) 的类型 <class \'str\'> 所以不能直接计算 print(int(bin(10),base=2)+int(bin(20),base=2)) #输出 30 #base 参数不可为空 为空默认参数为10进制 会报错 ValueError: invalid literal for int() with base 10: \'0b1010\' #当然了,参数不仅可以接受十进制整数,八进制、十六进制也是可以的,只要是int型数据就合法。 print(bin(0b10010)) #输出0b10010 print(bin(0o1357)) #输出0b1011101111 print(bin(0x2d9)) #输出0b1011011001
6.bool()函数
\'\'\' 描述 bool() 函数用于将给定参数转换为布尔类型,如果没有参数,返回 False。 bool 是 int 的子类。 语法 以下是 bool() 方法的语法: class bool([x]) 参数 x -- 要进行转换的参数。 返回值 返回 Ture 或 False。 \'\'\' print(bool(0)) #返回False print(bool(1)) #返回True print(bool(True)) #返回True print(bool(False)) #返回False print(bool(\'\')) #返回False #0,False,\'\', 空字符串返回Fasle
7.bytes()函数
\'\'\' 描述 bytes 函数返回一个新的 bytes 对象,该对象是一个 0 <= x < 256 区间内的整数不可变序列。 它是 bytearray 的不可变版本。 语法 以下是 bytes 的语法: class bytes([source[, encoding[, errors]]]) 参数 如果 source 为整数,则返回一个长度为 source 的初始化数组; 如果 source 为字符串,则按照指定的 encoding 将字符串转换为字节序列; 如果 source 为可迭代类型,则元素必须为[0 ,255] 中的整数; 如果 source 为与 buffer 接口一致的对象,则此对象也可以被用于初始化 bytearray。 如果没有输入任何参数,默认就是初始化数组为0个元素。 返回值 返回一个新的 bytes 对象。 将一个字符串转换成字节类型 \'\'\' print(bytes(\'python\',encoding=\'utf-8\')) #输出b\'python\' print(bytes(\'张三\',encoding=\'utf-8\')) #输出b\'\\xe5\\xbc\\xa0\\xe4\\xb8\\x89\' print(bytes([1,2,3,4])) #输出b\'\\x01\\x02\\x03\\x04\' print(bytes(\'hello\',\'ascii\')) #输出b\'hello\' print(type(bytes([1,2,3]))) #输出<class \'bytes\'>
8.challable()函数
\'\'\' challable() 判断对象是否可以被调用, 能被调用的对象就是一个callables对象, 比如函数和带有__call__()的实例 \'\'\' print(callable(max)) #输出True print(callable([1,2,3])) #输出Fasle print(callable(None)) #输出Fasle print(callable(\'str\')) #输出Fasle def fn(x): return x*x print(callable(fn)) #输出True 证明自定义的函数也可以
9.chr()函数
\'\'\' 查看十进制数对应的ASCII码值 描述 chr() 用一个整数作参数,返回一个对应的字符。 语法 以下是 chr() 方法的语法: chr(i) 参数 i -- 可以是 10 进制也可以是 16 进制的形式的数字,数字范围为 0 到 1,114,111 (16 进制为0x10FFFF)。 返回值 返回值是当前整数对应的 ASCII 字符。 \'\'\' #print(chr(-1)) #报错 ValueError: chr() arg not in range(0x110000) 超出范围 不能小于0 print(chr(0x30)) #输出 0 print(chr(97)) #输出 a print(chr(8364)) #输出 €
10.classmethod()函数
\'\'\' 描述 classmethod 修饰符对应的函数不需要实例化,不需要 self 参数, 但第一个参数需要是表示自身类的 cls 参数,可以来调用类的属性,类的方法,实例化对象等。 语法 classmethod 语法: classmethod 参数 无。 返回值 返回函数的类方法。 \'\'\' class Stud: num=1 def fn1(self): print(\'方法一\') @classmethod def fn2(cls): print(\'方法二\') #输出 方法二 print(cls.num) #调用类的实例化对象 cls().fn1() #调用类的方法 Stud.fn2() #输出 方法二 不需要实例化 print(\'====\'*10) object=Stud() object.fn1() #输出 方法一 需要实例化
11.complex()函数
\'\'\' 描述 complex() 函数用于创建一个值为 real + imag * j 的复数或者转化一个字符串或数为复数。 如果第一个参数为字符串,则不需要指定第二个参数。。 语法 complex 语法: class complex([real[, imag]]) 参数说明: real -- int, long, float或字符串; imag -- int, long, float; 返回值 返回一个复数。 \'\'\' print(complex(1,2)) #输出 (1+2j) print(complex(1)) #输出 (1+0j) print(complex(\'2\')) #输出 (2+0j) # 注意:这个地方在"+"号两边不能有空格,也就是不能写成"1 + 2j",应该是"1+2j",否则会报错 print(complex(\'2+3j\')) #输出 (2+3j) print(complex(1.2,3.4)) #输出 (1.2+3.4j)
12.complie()函数
\'\'\' complie() 将字符串编译成python能识别或可以执行的代码,也可以将文字读成字符串再编译 1 compile(source, filename, mode, flags=0, dont_inherit=False, optimize=-1) 2 将source编译为代码或者AST对象。代码对象能过通过exec语句来执行或者eval()进行求值。 3 参数source:字符串或者AST(abstract syntax trees)对象。 4 参数filename:代码文件名称,如果不是从文件读取代码则传递一些可辨认的值。 5 参数model:指定编译代码的种类。可以指定\'exec\', \'eval\', \'single\'。 6 参数flag和dont_inherit:这两个参数为可选参数。 \'\'\' s="print(\'hello world\')" r=compile(s,\'hello\',\'exec\') print(r) #输出结果: #<code object <module> at 0x000002EBD335CF60, file "hello", line 1>
13.delattr()函数
\'\'\' 描述: delattr函数用于删除属性 delattr(x,\'foobar)相当于del x.foobar 语法: setattr(object,name) 参数: object--对象 name--必须是对象的属性 返回值: 无 \'\'\' class People(): sex=\'男\' def __init__(self,name): self.name=name def peopleinfo(self): print(\'欢迎%s访问\'%self.name) delattr(People,\'sex\') #等同于 del People.sex print(People.__dict__) #输出 {\'__module__\': \'__main__\', \'__init__\': <function People.__init__ at 0x000001CE3E2E52F0>, \'peopleinfo\': <function People.peopleinfo at 0x000001CE3E2E5378>, \'__dict__\': <attribute \'__dict__\' of \'People\' objects>, \'__weakref__\': <attribute \'__weakref__\' of \'People\' objects>, \'__doc__\': None} class Foo: def run(self): while True: cmd=input(\'cmd>>: \').strip() if hasattr(self,cmd): func=getattr(self,cmd) func() def download(self): print(\'download....\') def upload(self): print(\'upload...\') obj=Foo() obj.run()
14.dict()函数
\'\'\' 描述 dict() 函数用于创建一个字典。 语法 dict 语法: class dict(**kwarg) class dict(mapping, **kwarg) class dict(iterable, **kwarg) 参数说明: **kwargs -- 关键字 mapping -- 元素的容器。 iterable -- 可迭代对象。 返回值 返回一个字典。 \'\'\' print(dict()) #创建空字典 dict1=dict(a=\'a\', b=\'b\', t=\'t\') #传入关键字 构建字典 print(dict1) #输出 {\'a\': \'a\', \'b\': \'b\', \'t\': \'t\'} dict2=dict(zip([\'one\', \'two\', \'three\'], [1, 2, 3])) # 映射函数方式来构造字典 print(dict2) #输出 {\'one\': 1, \'two\': 2, \'three\': 3} dict3=dict([(\'one\', 1), (\'two\', 2), (\'three\', 3)]) # 可迭代对象方式来构造字典 print(dict3) #输出 {\'one\': 1, \'two\': 2, \'three\': 3}
15.dir()函数
\'\'\' dir() 函数不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表。如果参数包含方法__dir__(),该方法将被调用。如果参数不包含__dir__(),该方法将最大限度地收集参数信息。 语法 dir 语法: dir([object]) 参数说明: object -- 对象、变量、类型。 返回值 返回模块的属性列表。 \'\'\' print(dir()) #获得当前模块的属性列表 #输出 [\'__annotations__\', \'__builtins__\', \'__cached__\', \'__doc__\', \'__file__\', \'__loader__\', \'__name__\', \'__package__\', \'__spec__\'] print(dir([])) #获得列表的方法 #输出 [\'__add__\', \'__class__\', \'__contains__\', \'__delattr__\', \'__delitem__\', \'__dir__\', \'__doc__\', \'__eq__\', \'__format__\', \'__ge__\', \'__getattribute__ print(dir(str)) #获得字符串的方法 #输出 [\'__add__\', \'__class__\', \'__contains__\', \'__delattr__\', \'__dir__\', \'__doc__\', \'__eq__\', \'__format__\', \'__ge__\', \'__getattribute__\', \'__getitem__\', \'__getnewargs__\', \'__gt__\', \'__hash__\', \'__init__\', \'__init_subclass__\', \'__iter__\', \'__le__\', \'__len__\', \'__lt__\', \'__mod__\', \'__mul__\', \'__ne__\', \'__new__\', \'__reduce__\', \'__reduce_ex__\', \'__repr__\', \'__rmod__\', \'__rmul__\', \'__setattr__\', \'__sizeof__\', \'__str__\', \'__subclasshook__\', \'capitalize\', \'casefold\', \'center\', \'count\', \'encode\', \'endswith\', \'expandtabs\', \'find\', \'format\', \'format_map\', \'index\', \'isalnum\', \'isalpha\', \'isdecimal\', \'isdigit\', \'isidentifier\', \'islower\', \'isnumeric\', \'isprintable\', \'isspace\', \'istitle\', \'isupper\', \'join\', \'ljust\', \'lower\', \'lstrip\', \'maketrans\', \'partition\', \'replace\', \'rfind\', \'rindex\', \'rjust\', \'rpartition\', \'rsplit\', \'rstrip\', \'split\', \'splitlines\', \'startswith\', \'strip\', \'swapcase\', \'title\', \'translate\', \'upper\', \'zfill\'] print(dir(dict)) #获得字典的方法 #输出 [\'__class__\', \'__contains__\', \'__delattr__\', \'__delitem__\', \'__dir__\', \'__doc__\', \'__eq__\', \'__format__\', \'__ge__\', \'__getattribute__\', \'__getitem__\', \'__gt__\', \'__hash__\', \'__init__\', \'__init_subclass__\', \'__iter__\', \'__le__\', \'__len__\', \'__lt__\', \'__ne__\', \'__new__\', \'__reduce__\', \'__reduce_ex__\', \'__repr__\', \'__setattr__\', \'__setitem__\', \'__sizeof__\', \'__str__\', \'__subclasshook__\', \'clear\', \'copy\', \'fromkeys\', \'get\', \'items\', \'keys\', \'pop\', \'popitem\', \'setdefault\', \'update\', \'values\'] def update_func(var): print("var 的内存地址:", id(var)) var += [4] lst_1 = [1, 2, 3] print(dir()) #输出 [\'__annotations__\', \'__builtins__\', \'__cached__\', \'__doc__\', \'__file__\', \'__loader__\', \'__name__\', \'__package__\', \'__spec__\', \'lst_1\', \'update_func\'] class Shape: def __dir__(self): return [\'area\', \'perimeter\', \'location\'] s = Shape() print(dir(s)) #输出 [\'area\', \'location\', \'perimeter\'] #参考网页 https://www.yuzhi100.com/tutorial/python3/python3-neizhihanshu-dir
16.divmod()函数
\'\'\' python divmod() 函数把除数和余数运算结果结合起来,返回一个包含商和余数的元组(a // b, a % b)。 在 python 2.3 版本之前不允许处理复数。 函数语法 divmod(a, b) 参数说明: a: 数字 b: 数字 \'\'\' print(divmod(20,4)) #返回 (5, 0) print(divmod(7,2)) #返回 (3, 1) print(divmod(8,2)) #返回 (4, 0) #print(divmod(1+2j,1+0.5j)) #报错 TypeError: can\'t take floor or mod of complex number.
17.enumerate()函数
\'\'\' enumerate是翻译过来是枚举的意思,看下它的方法原型: enumerate(sequence, start=0),返回一个枚举对象。 sequence必须是序列或迭代器iterator,或者支持迭代的对象。 enumerate()返回对象的每个元素都是一个元组, 每个元组包括两个值,一个是计数,一个是sequence的值, 计数是从start开始的,start默认为0。 --------------------- \'\'\' a=["q","w","e","r"] c=enumerate(a) for i in c: print(i) \'\'\' 输出如下: (0, \'q\') (1, \'w\') (2, \'e\') (3, \'r\') \'\'\' a=["w","a","s","d"] #这里加了个参数2,代表的是start的值 c=enumerate(a,2) for i in c: print(i) \'\'\' 输出如下: (2, \'w\') (3, \'a\') (4, \'s\') (5, \'d\') \'\'\' a=["q","w","e","r"] #创建一个空字典 b=dict() #这里i表示的是索引,item表示的是它的值 for i,item in enumerate(a): b[i]=item print(b) #输出 {0: \'q\', 1: \'w\', 2: \'e\', 3: \'r\'} for i,j in enumerate(\'abc\'): print(i,j) #输出结果 # 0 a # 1 b # 2 c
18.eval()函数
\'\'\' eval() 函数用来执行一个字符串表达式,并返回表达式的值。 语法 以下是 eval() 方法的语法: eval(expression[, globals[, locals]]) 参数 expression -- 表达式。 globals -- 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。 locals -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。 返回值 返回表达式计算结果。 \'\'\' x=7 print(eval(\'3*x\')) #返回 21 print(eval(\'pow(2,2)\')) #返回 4 print(eval(\'3+5\')) #返回 8 #eval函数还可以实现list、dict、tuple与str之间的转化 #1.字符串转换成列表 a = "[[1,2], [3,4], [5,6], [7,8], [9,0]]" print(type(a)) #返回 <class \'str\'> b = eval(a) print(type(b)) #返回 <class \'list\'> print(b) #输出 [[1, 2], [3, 4], [5, 6], [7, 8], [9, 0]] #2.字符串转换成字典 a = "{1: \'a\', 2: \'b\'}" print(type(a)) #返回 <class \'str\'> b = eval(a) print(type(b)) #返回 <class \'dict\'> print(b) #输出 {1: \'a\', 2: \'b\'} #3.字符串转换成元组 a = "([1,2], [3,4], [5,6], [7,8], (9,0))" print(type(a)) #返回 <class \'str\'> b=eval(a) print(type(b)) #返回 <class \'tuple\'> print(b) #输出 ([1, 2], [3, 4], [5, 6], [7, 8], (9, 0))
19.exec()函数
\'\'\' 函数的作用: 动态执行python代码。也就是说exec可以执行复杂的python代码,而不像eval函数那样只能计算一个表达式的值。 exec(source, globals=None, locals=None, /) source:必选参数,表示需要被指定的python代码。它必须是字符串或code对象。如果source是一个字符串,该字符串会先被解析为一组python语句,然后执行。如果source是一个code对象,那么它只是被简单的执行。 返回值: exec函数的返回值永远为None。 eval()函数和exec()函数的区别: eval()函数只能计算单个表达式的值,而exec()函数可以动态运行代码段。 eval()函数可以有返回值,而exec()函数返回值永远为None。 \'\'\' x = 10 def func(): y = 20 a = exec("x+y") print("a:",a) #输出 a: None b = exec("x+y",{"x":1,"y":2}) print("b:",b) #输出 b: None c = exec("x+y",{"x":1,"y":2},{"y":3,"z":4}) print("c:",c) #输出 c: None d = exec("print(x,y)") print("d:",d) #输出 d: None func() x = 10 expr = """ z = 30 sum = x + y + z #一大包代码 print(sum) """ def func(): y = 20 exec(expr) #10+20+30 输出60 exec(expr,{\'x\':1,\'y\':2}) #30+1+2 输出 33 exec(expr,{\'x\':1,\'y\':2},{\'y\':3,\'z\':4}) #30+1+3,x是定义全局变量1,y是局部变量 输出34 func() #参考原博客 https://www.cnblogs.com/yangmingxianshen/p/7810496.html
20.filter()函数
\'\'\' filter() 函数是一个对于可迭代对象的过滤器,过滤掉不符合条件的元素, 返回的是一个迭代器,如果要转换为列表,可以使用 list() 来转换。 该函数接收两个参数,第一个为函数的引用或者None,第二个为可迭代对象, 可迭代对象中的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到迭代器中 下面看下fiter()的用法: \'\'\' my_list=[1,2,\'\',3,4,\'6\',\' \'] new_list=list(filter(None,my_list)) print(new_list) #None 函数 过滤掉\'\' 而不是过滤掉空字符串 def is_oushu(x): return x%2==0 new_list=list(filter(is_oushu,list(range(1,11)))) print(new_list) #过滤掉不是偶数的数 a=[1,2,3,4,5,6,2,2,2,] print(list(filter(lambda x:x!=2,a))) #筛选出列表里所有的不是 2 的元素
21.float()函数
\'\'\' 描述 float() 函数用于将整数和字符串转换成浮点数。 语法 float()方法语法: class float([x]) 参数 x -- 整数或字符串 返回值 返回浮点数。 \'\'\' print(float(1)) #输出 1.0 print(float(112.0)) #输出 112.0 print(float(\'123\')) #输出 123.0 print(float(True)) #输出 1.0 print(float(False)) #输出 0.0 #print(float(\'a\')) #报错 ValueError: could not convert string to float: \'a\' #可以参考博客 https://blog.csdn.net/TCatTime/article/details/82932818
22.format()函数
\'\'\' 自python2.6开始,新增了一种格式化字符串的函数str.format(),此函数可以快速处理各种字符串。 语法 它通过{}和:来代替%。 请看下面的示例,基本上总结了format函数在python的中所有用法 以上是关于python3内置函数大全的主要内容,如果未能解决你的问题,请参考以下文章