1、内置函数:
https://www.runoob.com/python/python-built-in-functions.html 菜鸟教程
https://docs.python.org/3/library/functions.html?highlight=built#ascii 官方原档Python3.7
1.1 数学运算:
#abs:求数值的绝对值 abs(-2) #divmod:返回两个数值的商和余数 divmod(10,3) #max:返回可迭代对象的元素中的最大值或者所有参数的最大值 max(-1,1,2,3,4) #传入多个参数 取其中较大者 max('1245657') #传入1个可迭代对象,取其最大元素值 max(-1,0,key=abs) #传入了求绝对值函数,则参数都会进行求绝对值后再取较大者 -1 #min:返回可迭代对象的元素中的最小值或者所有参数的最小值 min(-1,12,3,4,5)#-1 min('1234545')#'1' min(-1,0,key=abs)#0 #pow:取两个值的幂运算值,或与其他 pow(2,3)#8 pow(2,3,5) #取(2**3)%5 取模就是余数 pow(2,3,4)#0 #round:对浮点数进行四舍五入求值 round(1.456778888)#1 round(1.4567787888,2)#1.46 #sum:对元素类型是数值的可迭代对象中的每个元素求和 sum((1,2,3,4))#10 sum([1,2,3,4])#10 sum((1.1,1.2,1.3))#3.5999999999999996 sum((1,2,3,4),3)#13
1.2 类型转换:
#bool:根据传入的参数的逻辑值创建一个新的布尔值 print(bool(0))#False print(bool([]))#False print(bool('str'))#True ''' int:根据传入的参数创建一个新的整数 float:根据传入的参数创建一个新的浮点数 str:返回一个对象的字符串表现形式(给用户) complex:根据传入参数创建一个新的复数 ord:返回ASCII符对应的整数 chr:返回整数所对应的ASCII字符 bin:将整数转换成2进制字符串 oct:将整数转化成8进制数字符串 hex:将整数转换成16进制字符 tuple:根据传入的参数创建一个新的元组 list:根据传入的参数创建一个新的列表 dict:根据传入的参数创建一个新的字典 set:根据传入的参数创建一个新的集合 ''' print(complex(1))#(1+0j) print(complex('1+2j'))#(1+2j) print(ord('a')) print(chr(98)) ''' bytearray:根据传入的参数创建一个新的字节数组 bytes:根据传入的参数创建一个新的不可变字节数组 ''' print(bytearray([3]))#bytearray(b'\x03') print(bytes('小明',encoding='utf-8'))#b'\xe5\xb0\x8f\xe6\x98\x8e' #memoryview() 函数返回给定参数的内存查看对象(Momory view)。 #所谓内存查看对象,是指对支持缓冲区协议的数据进行包装,在不需要复制对象基础上允许Python代码访问。 v = memoryview(bytearray('akrge',encoding='utf-8')) print(v)#<memory at 0x001ECC60> print(v[0])#返回对应的ASCII值 print(v[1:4])#<memory at 0x001ACC60>返回的内存地址 print(v[1:4].tobytes())#b'krg' #frozenset:根据传入的参数创建一个新的不可变集合 v = frozenset(range(7)) print(v)#frozenset({0, 1, 2, 3, 4, 5, 6}) #enumerate:根据可迭代对象创建枚举对象 seasons = ['Spring', 'Summer', 'Fall', 'Winter'] for i in enumerate(seasons): print(i) #(0, 'Spring')(1, 'Summer')(2, 'Fall')(3, 'Winter') print(list(enumerate(seasons)))#[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')] print(list(enumerate(seasons,start=1)))#[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')] #range:根据传入的参数创建一个新的range对象 #iter:根据传入的参数创建一个新的可迭代对象 v = iter('abc') print(v)#<str_iterator object at 0x00667050> for i in v: print(i) #slice:根据传入的参数创建一个新的切片对象 v = slice(2) print(v)#slice(None, 2, None) seasons = ['Spring', 'Summer', 'Fall', 'Winter'] print(seasons[v])#['Spring', 'Summer'] ''' super() 函数是用于调用父类(超类)的一个方法。 super 是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没问题,但是如果使用多继承,会涉及到查找顺序(MRO)、重复调用(钻石继承)等种种问题。 MRO 就是类的方法解析顺序表, 其实也就是继承父类方法时的顺序表。 语法 以下是 super() 方法的语法: super(type[, object-or-type]) 参数 type -- 类。 object-or-type -- 类,一般是 self Python3.x 和 Python2.x 的一个区别是: Python 3 可以使用直接使用 super().xxx 代替 super(Class, self).xxx : ''' #object:创建一个新的object对象
1.3序列操作
'''1、all(iterable) 如果iterable的所有元素不为0、''、False或者iterable为空,all(iterable)返回True,否则返回False; 注意:空元组、空列表返回值为True,这里要特别注意。''' print(all([]))#True print(all([0,1,2]))#False '''2、any() 函数用于判断给定的可迭代参数 iterable 是否全部为 False,则返回 False, 如果有一个为 True,则返回 True。元素除了是 0、空、FALSE 外都算 TRUE。 注意:空元组、空列表返回值为False''' print(any([]))#False print(any([0,1,2]))#True '''3、next:返回可迭代对象中的下一个元素值''' '''4、sorted:对可迭代对象进行排序,返回一个新的列表 reverse:对列表的元素进行反向排序''' a = ['a','b','d','c','B','A'] sorted(a) print(a) b=[1,4,65,3,1,5,6,] b.reverse() print(b) '''5、zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组, 然后返回由这些元组组成的对象,这样做的好处是节约了不少的内存。我们可以使用 list() 转换来输出列表。 如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。''' a =[1,2,3,4,5,6] b =[5,3,2,1] c=[1,3] zipped = zip(a,b) print(zipped)#<zip object at 0x02343468> print(list(zipped))#[(1, 5), (2, 3), (3, 2), (4, 1)] x,y = zip(*zip(a,b)) print(list(x)) print(list(y)) '''6、map()会根据提供的函数对指定序列做映射。 第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。 语法:map(function, iterable, ...) ''' v = [1,4,5,6,7] x = map(lambda x:x*2,v) print(x)#<map object at 0x009FF9F0> print(list(x))#[2, 8, 10, 12, 14] # for i in x: # print(i) '''6、描述 filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象,如果要转换为列表,可以使用 list() 来转换。 该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。 语法 以下是 filter() 方法的语法: filter(function, iterable) 参数 function -- 判断函数。 iterable -- 可迭代对象。 返回值 返回一个迭代器对象''' def add(i): return i%2==1 v = filter(add,range(1,100)) print(v)#<filter object at 0x0063FF10> print(list(v))
1.4对象操作
''' help:返回对象的帮助信息 dir:返回对象或者当前作用域内的属性列表 id:返回对象的唯一标识符 hash:获取对象的哈希值 type:返回对象的类型,或者根据传入的参数创建一个新的类型 len:返回对象的长度 ascii:返回对象的可打印表字符串表现方式 format:格式化显示值 vars:返回当前作用域内的局部变量和其值组成的字典,或者返回对象的属性列表 ''' x = 1 y = vars() print(y['x'])#1
1.5变量操作
''' globals:返回当前作用域内的全局变量和其值组成的字典 locals:返回当前作用域内的局部变量和其值组成的字典 locals() 函数会以字典类型返回当前位置的全部局部变量。 对于函数, 方法, lambda 函式, 类, 以及实现了 __call__ 方法的类实例, 它都返回 True。 ''' a = 1 print(globals()) def add(arg): b = 3 print(locals()) add(4) #{'arg': 4, 'b': 3}
1.6交互&文件
''' print:向标准输出对象打印输出 input:读取用户输入值 open:使用指定的模式和编码打开文件,返回文件读写对象 '''
1.7编译
''' exec 执行储存在字符串或文件中的 Python 语句,相比于 eval,exec可以执行更复杂的 Python 代码。 语法 以下是 exec 的语法: exec(object[, globals[, locals]]) 参数 object:必选参数,表示需要被指定的Python代码。它必须是字符串或code对象。如果object是一个字符串,该字符串会先被解析为一组Python语句,然后在执行(除非发生语法错误)。如果object是一个code对象,那么它只是被简单的执行。 globals:可选参数,表示全局命名空间(存放全局变量),如果被提供,则必须是一个字典对象。 locals:可选参数,表示当前局部命名空间(存放局部变量),如果被提供,可以是任何映射对象。如果该参数被忽略,那么它将会取与globals相同的值。 返回值 exec 返回值永远为 None。 ''' exec('print("hello world")')#hello world exec('''for i in range(10):print ("iter time: %d" % i)''') '''repr() 函数将对象转化为供解释器读取的形式。 语法 以下是 repr() 方法的语法: repr(object) 参数 object -- 对象。 返回值 返回一个对象的 string 格式。''' list01= [1,3,54] print(type(list01)) list02 =repr(list01) print(type(list02)) print(repr(list01)) '''eval() 函数用来执行一个字符串表达式,并返回表达式的值。 语法 以下是 eval() 方法的语法: eval(expression[, globals[, locals]]) 参数 expression -- 表达式。 globals -- 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。 locals -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。 返回值 返回表达式计算结果。 ''' print(eval('2+4'))#6 ''' compile() 函数将一个字符串编译为字节代码。 语法 以下是 compile() 方法的语法: compile(source, filename, mode[, flags[, dont_inherit]]) 参数 source -- 字符串或者AST(Abstract Syntax Trees)对象。。 filename -- 代码文件名称,如果不是从文件读取代码则传递一些可辨认的值。 mode -- 指定编译代码的种类。可以指定为 exec, eval, single。 flags -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。。 flags和dont_inherit是用来控制编译源码时的标志 返回值 返回表达式执行结果。 ''' v = "2+4+4" print(type(v)) s = compile(v,'','eval') print(s)#<code object <module> at 0x00F5D758, file "", line 1> print(eval(s))#10
1.8反射操作
#__import__:动态导入模块 #isinstance:判断对象是否是类或者类型元组中任意类元素的实例 ''' isinstance() 函数来判断一个对象是否是一个已知的类型,类似 type()。 isinstance() 与 type() 区别: type() 不会认为子类是一种父类类型,不考虑继承关系。 isinstance() 会认为子类是一种父类类型,考虑继承关系。 如果要判断两个类型是否相同推荐使用 isinstance()。 语法:isinstance(object, classinfo) 参数:object -- 实例对象。 classinfo -- 可以是直接或间接类名、基本类型或者由它们组成的元组。 返回值 如果对象的类型与参数二的类型(classinfo)相同则返回 True,否则返回 False。 ''' a = 2 print(isinstance(a,int)) print(isinstance(a,str))