当前位置 : 主页 > 编程语言 > python >

python函数和python匿名函数lambda详解

来源:互联网 收集:自由互联 发布时间:2023-01-30
目录 1. python函数 1.1 函数的作用 1.2 函数定义 1.3 函数调用 1.4 函数的参数 1.4.1 参数的传递 1.4.2 参数类型 1.4.2.1 位置参数(必备参数) 1.4.2.2 关键字参数 1.4.2.3可变参数 1.4.5 为参数设置默认
目录
  • 1. python函数
    • 1.1 函数的作用
    • 1.2 函数定义
    • 1.3 函数调用
    • 1.4 函数的参数
      • 1.4.1 参数的传递
      • 1.4.2 参数类型
      • 1.4.2.1 位置参数(必备参数)
      • 1.4.2.2 关键字参数
      • 1.4.2.3可变参数
      • 1.4.5 为参数设置默认值
    • 1.5 函数返回值
    • 2. python lambda表达式
      • 2.1 匿名函数
        • 2.2 使用场景
          • 2.3 语法
            • 2.4 实例

            1. python函数

            1.1 函数的作用

            • 函数是组织好的,可重复使用的,用来实现单一或相关联功能的代码段
            • 函数能提高应用的模块性代码的重复利用率
            • python 内置函数:https://docs.python.org/zh-cn/3.10/library/functions.html

            1.2 函数定义

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

            定义函数的注意事项:

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

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

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

            1.3 函数调用

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

            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.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.4.2.2 关键字参数

            • 使用形式参数的名字确定输入的参数值
            • 不需要与形式参数的位置完全一致
            def demo_func(a, b, c):
                print(a, b, c)
            
            demo_func(a=1, b=2, c=3)
            

            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.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.4.5 为参数设置默认值

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

            1.5 函数返回值

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

            def function_name([parameter_list]):
                [''' comments ''']
                [function_body]
                return [value]
            

            2. python lambda表达式

            2.1 匿名函数

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

            2.2 使用场景

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

            2.3 语法

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

            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)]

            到此这篇关于python函数和python匿名函数lambda的文章就介绍到这了,更多相关python匿名函数lambda内容请搜索自由互联以前的文章或继续浏览下面的相关文章希望大家以后多多支持自由互联!

            网友评论