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

作者:爱测试的高胖胖 时间:2021-08-22 17:57:07 

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

来源:https://blog.csdn.net/gjj920318/article/details/126738409

标签:python,匿名函数,lambda
0
投稿

猜你喜欢

  • 用Python爬取LOL所有的英雄信息以及英雄皮肤的示例代码

    2021-07-29 00:54:25
  • Python函数生成器原理及使用详解

    2023-12-02 17:57:31
  • Python K最近邻从原理到实现的方法

    2022-10-13 09:41:45
  • 神经网络(BP)算法Python实现及应用

    2021-11-12 20:00:14
  • 用js实现放大镜效果

    2023-09-19 18:29:29
  • python实现取余操作的简单实例

    2021-08-21 01:00:51
  • php中数字、字符与对象判断函数用法实例

    2023-07-24 03:27:08
  • OracleEXP和IMP用法和介绍

    2010-07-28 13:18:00
  • Date()与new Date()的区别

    2008-09-29 11:09:00
  • 对Python3 解析html的几种操作方式小结

    2021-04-07 20:13:12
  • MySQL 5.7.16 修改密码提示 ERROR 1054 (42S22): Unknown column ''password'' in ''field list''的原因

    2024-01-20 02:43:33
  • 使用python3+xlrd解析Excel的实例

    2021-05-09 23:37:33
  • vue项目的创建的步骤(图文教程)

    2024-05-21 10:16:29
  • Python 异常处理的实例详解

    2023-10-05 17:11:58
  • Vue中子组件调用父组件的3种方法实例

    2024-05-13 09:08:18
  • Python抓取手机号归属地信息示例代码

    2023-03-02 21:24:59
  • php插件功能实现方法介绍

    2023-05-30 12:28:52
  • mysql 5.7.17 winx64解压版安装配置方法图文教程

    2024-01-22 07:47:16
  • Python利用Scrapy框架爬取豆瓣电影示例

    2022-04-30 15:16:17
  • 如何使用Pytorch搭建模型

    2022-07-18 10:34:27
  • asp之家 网络编程 m.aspxhome.com