• 【python】(五)python函数和python匿名函数lambda



    1. python函数

    1.1 函数的作用

    1.2 函数定义

    • def:函数定义关键词
    • function_name:函数名称
    • ():参数列表放置的位置,可以为空
    • parameter_list:可选,指定向函数中传递的参数
    • comments:可选,为函数指定注释
    • function_body:可选,指定函数体
    def function_name([parameter_list]):
        [''' comments ''']
        [function_body]
    
    • 1
    • 2
    • 3

    定义函数的注意事项:

    • 缩进:python 是通过严格的缩进来判断代码块儿

      • 函数体和注释相对于 def 关键字必须保持一定的缩进,一般都是 4 个空格
      • pycharm 自动格式化快捷键:ctrl+alt+L
    • 定义空函数

      • 使用 pass 语句占位
      • 写函数注释 comments、

    1.3 函数调用

    • function_name:函数名称
    • parameter_value:可选,指定各个参数的值
    function_name([parameter_value])
    
    • 1

    1.4 函数的参数

    1.4.1 参数的传递

    • 形式参数:定义函数时,函数名称后面括号中的参数
    • 实际参数:调用函数时,函数名称后面括号中的参数
    # a, b, c 为形式参数
    def demo_func(a, b, c):
        print(a, b, c)
    
    # 1, 2, 3 为实际参数
    demo_func(1, 2, 3)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    1.4.2 参数类型

    1.4.2.1 位置参数(必备参数)
    • 数量必须与定义时一致
    • 位置必须与定义时一致
    def demo_func(a, b, c):
        print(a, b, c)
    
    # 1 赋值给 a, 2 赋值给 b, 3 赋值给 c
    demo_func(1, 2, 3)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    1.4.2.2 关键字参数
    • 使用形式参数的名字确定输入的参数值
    • 不需要与形式参数的位置完全一致
    def demo_func(a, b, c):
        print(a, b, c)
    
    demo_func(a=1, b=2, c=3)
    
    • 1
    • 2
    • 3
    • 4
    1.4.2.3可变参数
    • 可变参数也称为不定长参数
    • 传入函数中实际参数可以是任意多个
    • 常见形式
      • *args
      • **kwargs
    1.4.2.3.1 *args
    • 接收任意多个实际参数,并将其放到一个元组
    • 使用已经存在的列表元组作为函数的可变参数,可以在列表的名称前加*
    def print_language(*args):
        print(args)
    
    print_language("python", "java", "php", "go")
    
    params = ["python", "java", "php", "go"]
    print_language(*params)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    1.4.2.3.2 **kwargs
    • 接收任意多个类似关键字参数一样显式赋值的实际参数,并将其放到一个字典
    • 使用已经存在字典作为函数的可变参数,可以在字典的名称前加**
    def print_info(**kwargs):
        print(kwargs)
    
    print_info(Tom=18, Jim=20, Lily=12)
    
    params = {'Tom':18, 'Jim':20, 'Lily':12}
    print_language(**params)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    1.4.5 为参数设置默认值

    • 定义函数时可以指定形式参数的默认值
    • 指定默认值的形式参数必须放在所有参数的最后,否则会产生语法错误
    • param=default_value:可选,指定参数并且为该参数设置默认值为 default_value
    • 设置默认值必须要使用不可用对象,可变对象不可以用,如:列表,字典。
    def function_name(..., [param=default_value]):
        [function_body]
    
    • 1
    • 2

    1.5 函数返回值

    value:可选,指定要返回的值

    def function_name([parameter_list]):
        [''' comments ''']
        [function_body]
        return [value]
    
    • 1
    • 2
    • 3
    • 4

    2. python lambda表达式

    2.1 匿名函数

    • 没有名字的函数
    • 用 lambda 表达式创建匿名函数

    2.2 使用场景

    • 需要一个函数,但是又不想费神去命名这个函数
    • 通常在这个函数只使用一次的场景下
    • 可以指定短小的回调函数

    2.3 语法

    • result:调用 lambda 表达式
    • [arg1 [, arg2, …. , argn]]:可选,指定要传递的参数列表
    • expression:必选,指定一个实现具体功能的表达式
    result = lambda [arg1 [, arg2, .... , argn]]: expression
    
    • 1

    2.4 实例

    L=[('b',2),('a',1),('c',3),('d',4)]
    
    # 2、利用参数 cmp 排序
    sorted(L, cmp=lambda x,y:cmp(x[1],y[1]))
    # 结果:
    [('a', 1), ('b', 2), ('c', 3), ('d', 4)]
    # 3、利用参数 key 排序
    sorted(L, key=lambda x:x[1])
    # 结果:
    [('a', 1), ('b', 2), ('c', 3), ('d', 4)]
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
  • 相关阅读:
    使用WSL2技术在Windows子系统中安装Ubuntu并安装docker及docker-compose(图文详细教程)
    C语言规范标准-C99(中文版) 完整版正式发布
    Chrome浏览器书签同步配置方法
    《向量数据库指南》——向量数据库的底层原理是什么?
    error=13, Permission denied
    HoloLens联合发明人:打造理想的全天AR需要解决这些问题
    亚远景科技-如何应对汽车软件开发中质量与速度的冲突带来的挑战?
    SpringCloud Stream @EnableBinding注解过时
    linux 打开相机工具cheese/guvcview
    Kubernetes 介绍
  • 原文地址:https://blog.csdn.net/gjj920318/article/details/126738409