清秋2018

导航

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这个变量里面

 

posted on 2020-09-04 22:44  清秋2018  阅读(133)  评论(0编辑  收藏  举报