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


猜你喜欢
- 我就废话不多说了,直接上代码吧!import paramikoimport pymysqlimport timelinux = ['
- pandas.read_sql 可以在数据库中执行指定的SQL语句查询或对指定的整张表进行查询,以DataFrame 的类型返回查询结果,这
- 如何在一段文字里点一下就可以在里面插入一段文字? 如题,不要用编辑器之类的来实现。高手们帮忙呀。 <SCRIPT LANG
- 揭秘一个普通的输入框背后惊人的秘密。某月某日,某项目某页面,需要一个价格区间筛选功能,需求合理,所以设计做上去。这是一个无比普通的输入框。在
- 最近项目需要,需要在表创建好之后,初始化一些数据。Django初始化数据的方法有很多,但都需要额外的手动操作,不智能。看网上有一种方法用po
- 在C#中,程序采用了的驱动采用了事件驱动而不是原来的消息驱动,虽然.net框架提供的事件已经十分丰富,
- 导入依赖"element-ui": "2.13.0","file-saver":
- 可视性的问题几乎在每次不同产品的用户测试中都会出现:用户总是对页面的某些元素、功能视若无睹,或根本无视。基于此,对这个问题进行了一番小小的研
- 因为项目需要数据验证,看bootstrapValidator 还不错,就上手一直,完美兼容,话不多说。bootstrap:能够增加兼容性的强
- 数据库安全性问题一直是围绕着数据库管理员的恶梦,数据库数据的丢失以及数据库被非法用户的侵入使得数据库管理员身心疲惫不堪。围绕数据库的安全性问
- 这篇文章主要介绍了python中如何使用insert函数,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的
- 前言将字符串动态转换为DOM节点,在开发中经常遇到,尤其在模板引擎中更是不可或缺的技术。字符串转换为DOM节点本身并不难,本篇文章主要涉
- python可以简单优美,也很有趣,下面是收集的例子:1.一句话开始一个http的文件服务器:$ python -m SimpleHTTPS
- 我们在数据处理,往往不小心,pandas会“主动”加上行和列的名称,我现在就遇到了这个问题。这个是pandas中to_csv生成的数据各种拼
- 本文实例讲述了centos7环境下二进制安装包安装 mysql5.6的方法。分享给大家供大家参考,具体如下:centos7 二进制安装包安装
- 介绍两个关键的CSS <style media="print">  
- 首先,了解下原理。1,提供文本框进行查询内容的输入2,将查询信息提交页面程序处理3,程序页主要作用:接受查询信息,根据此信息调用特定的SQL
- 安装lodashnpm i --save-dev @types/lodash在组件中引入lodashimport * as _ from &
- 我们在网页开发过程中经常会有打印页面的需求,通过JS来实现的方法有很多,这里我做了一个整理,供大家参考。方式一:window.print()
- 编辑PyCharm安装目录下PyCharm 4.5.3\bin下的pycharm.exe.vmoptions文件, 如下-server-Xm