码迷,mamicode.com
首页 > 其他好文 > 详细

函数进阶4

时间:2020-04-12 10:33:37      阅读:61      评论:0      收藏:0      [点我收藏+]

标签:val   family   执行   不可   收集   条件语句   class   else   mil   

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

函数进阶4

标签:val   family   执行   不可   收集   条件语句   class   else   mil   

原文地址:https://www.cnblogs.com/hany-postq473111315/p/12683729.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!