python 07篇 内置函数和匿名函数
一、内置函数
# 下面这些要掌握 # len type id print input open # round min max filter map zip exec eval print(all([1, 2, 3, 4, 5])) # 判断可迭代的对象里面的值是否都为真 都为真返回True,否则返回False print(any([0, False, '', [], 1])) # 判断可迭代的对象里面的值是否有为真 只要其中有1个为真返回True,否则返回False print(max([1, 2, 3, 4, 5])) # 判断可迭代的对象里面的最大值 print(min([1, 2, 3, 4, 5])) # 判断可迭代的对象里面的最小值 print(round(11.119998, 2)) # 保留几位小数 会四舍五入 a = '1' print(dir(a)) # 把变量的所有可用方法给列出来 print(bin(10)) # 十进制转二进制 print(chr(98)) # 打印数字对应的ASCII码 print(ord('b')) # 打印字符串对应的ASCII码 print(hex(111)) # 转十六进制 print(oct(111)) # 转八进制 # 字符集 Unicode 万国码 2个字节 utf-8 # 字符集转换 先转为Unicode,在转为目标字符集 # 要在python2上运行,需要在文件顶部加 # encoding = utf-8 s = ''' for i in range(10): print(i) ''' exec(s) # 用来动态执行python代码 网上常见的在线执行代码的就是用的这个 eval([1, 2, 3, 4, 5]) # 用来动态执行python代码,但是只能执行简单的代码,比如定义字符串、字典等 # 简化代码 filter() 和 map() # filter() # 过滤 def jisuan(number): if number % 2 == 0: return True l = range(1, 11) l2 = [] for i in l: if jisuan(i): l2.append(i) # filter会自动循环你传给他的list,然后把list中的每一个元素传给指定的函数,如果这个函数返回True就保留这个元素 result = list(filter(jisuan, l)) print(l2) print(result) # map会自动循环你传给他的list,然后把list中的每一个元素传给指定的函数,把函数的返回值记录下来 result2 = list(map(jisuan, l)) print(result2) result3 = list(map(str, range(1, 101))) print(result3) def test(): a = 1 b = 2 print(locals()) # 获取当前函数里面的局部变量 print(globals()) # 获取当前函数里面的全部变量 # zip 把几个压缩到一起 ''' [ ['xh','123'] ['xb','1231223'] ['xz','1232322'] ] ''' a = ['xh', 'xb', 'xz'] b = ['123', '1231223', '1232322'] for username, password in zip(a, b): # 使用zip压缩后,变成了二维数组,可以通过拆包来用多个变量来接收 print(username) print(password) # enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。 seq = ['one', 'two', 'three'] for i, element in enumerate(seq): print(i, element) # 输出结果 # 0 one # 1 two # 2 three
二、匿名函数
如果这个函数只执行一次的话,那就可以定义一个匿名函数,匿名函数只能处理比较简单的处理逻辑,只能写简单的表达式,不能写循环 判断,比如三元运算符。
匿名函数定义使用lambda关键字,比如说要定义一个函数,它的功能是返回两个数相加和,就可以使用lambda,代码如下:
# lambda 来定义匿名函数,一些简单的函数 a = lambda x: x + 1 # x为入参, :后面是返回值 result = a(1) print(result) # 入参可以有多个 s = lambda x, y: x+y # 冒号号前面的x,y是入参,冒号后面的是返回值 print(s(1, 9)) # 因为函数即变量,如果没有定一个变量把lambda存起来的话,它就不在内存里,没法执行,所有把它放到s这个变量里面