函数进阶4

1.匿名函数:
    一个表达式,没有 return 
    没有名称,执行很小的功能,不可以在内部写条件语句
2.判断参数是否存在 如果不存在会怎样->给出解决办法
3.可以使用 filter 和 lambda 进行使用
    如果不进行 list 转换,则只返回 filter 对象
4.参数:
    位置匹配:
        func(name)
    关键字匹配:
        func(key = value)
            从最右面开始赋予默认值
    收集匹配:
        元组收集
            func(name,arg1,arg2)
                func(*args)
        字典收集
             func(name,key1 = value1,key2 = value2)
                 func(**kwargs)
    参数顺序
5.递归:
    递归就是调用自身

程序:
# 第一点:
d = lambda x:x+1 
print(d(2))
# 3

d = lambda x:x + 1 if x > 0 else "不大于0"
print(d(3))
# 4
print(d(-3))
# 不大于0

# 列表推导
g = lambda x:[(x,i) for i in range(5)] 
print(g(5))
# 只传递了一个参数
# [(5, 0), (5, 1), (5, 2), (5, 3), (5, 4)]


# 第三点:
t = [1,4,7,8,5,3,9]
g = list(filter(lambda x: x > 5,t))
# 使用 list 将结果转换为列表
print(g)
# [7, 8, 9]


# 第四点:
# 对应位置传递参数
def func(arg1,arg2,arg3):
    return arg1,arg2,arg3

print(func(1,2,3))
# (1, 2, 3)

# 关键字匹配,不按照位置进行匹配
def func(k1 = '',k2 = '',k3 = ''):
    return k1,k2,k3

print(func(k2 = 4 , k3 = 5 , k1 = 3))
# (3, 4, 5)


# 收集匹配
# 元组
def func(*args):
    return args
print(func(5,6,7,8,[1,2,3]))
# (5, 6, 7, 8, [1, 2, 3])

def func(a,*args):
    # 先匹配 a 后匹配 *args
    return args
print(func(5,6,7,8,[1,2,3]))
# (6, 7, 8, [1, 2, 3])


# 字典
def func(**kwargs):
    return kwargs
print(func(a = 5,b = 8))
# {'a': 5, 'b': 8}

2020-04-12

猜你喜欢

转载自www.cnblogs.com/hany-postq473111315/p/12683729.html