Python函数与lambda 表达式(匿名函数)

Python 匿名函数:Lambda 表达式入门指南 本文介绍了 10 个 Python 匿名函数的应用场景,涵盖了计算、排序、过滤、字符串操作、字典操作等方面。希望这些例子能够帮助你更好地理解和使用 Python 匿名函数,编写更简洁、高效的代码! 阅读详情

Python函数

一、函数的作用

  • 函数是 组织好的 , 可重复使用的 ,用来实现单一或相关联功能的代码段

  • 函数能提高应用的模块性和 代码的重复利用率

  • python 内置函数: 内置函数 — Python 3.8.12 文档

二、函数的定义

def function_name([parameter_list]):   
      [''' comments ''']  
      [function_body]
  • def:函数定义关键词

  • function_name:函数名称

  • ():参数列表放置的位置,可以为空

  • parameter_list:可选,指定向函数中传递的参数

  • comments:可选,为函数指定 注释 (如何打印函数中的注释)

  • function_body:可选,指定 函数体

"""函数的定义"""
"""
def function_name([parameter_list]):
    [''' comments ''']  注释
    [function_body]  函数体
"""


# 定义函数,参数为空(注意缩进)
def function_demo():  # 不要忘记冒号
    print("我是一个函数")  # [function_body] 函数体


# 定义函数,含有参数,注释
def func_with_params(a, b, c):
    """
    这是一个携带参数和注释的函数  ---> comments
    """
    print(f"传入的参数为:a={a},b={b},c={c}")


#  打印函数comments(注释)
# 1、__doc__  打印出注释
print(func_with_params.__doc__)  # func_with_params()---->()没有括号
# 2、help 打印函数和注释
help(func_with_params)  # func_with_params()---->()没有括号


# 空函数 (函数体未想好/功能暂时没想好怎么写)
# 1、pass
def filter_char(s):
    pass


# 2、comments
def filter_char1(c):
    """
    功能:过滤铭感词
    """

三、定义函数的注意事项:

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

    • 函数体和注释相对于 def 关键字必须保持一定的缩进,一般都是 4 个空格

    • pycharm 自动格式化快捷键: ctrl+alt+L

  • 定义空函数

    • 使用 pass 语句占位

    • 写函数注释 comments

四、 函数的调用

function_name([parameter_value])
# function_name:函数名称
# parameter_value:可选,指定各个参数的值
"""函数的调用"""
# 无参函数调用
function_demo()
# 有参函数调用
func_with_params(1, 2, 3)

五、 函数参数的使用

  • 形式参数:定义函数时,函数名称后面括号中的参数

  • 实际参数:调用函数时,函数名称后面括号中的参数

"""函数参数的使用"""
# 1、形式参数:定义函数时,函数名称后面括号中的参数
def demo(a, b, v):  # a, b, v
    print(f"传入的参数为:a={a},b={b},c={v}")
# 2、实际参数:调用函数时,函数名称后面括号中的参数
demo(1, 2, 4)  # 1,2,3实际参数

1、位置参数

  • 数量必须与定义时一致

  • 位置必须与定义时一致

"""位置参数"""


def demo(a, b, v):
    print(f"传入的参数为:a={a},b={b},c={v}")


# 1、正确的
demo(1, 2, 3)


# 2、错误的例子,数量少了
# demo(1, 45)  # 有一个黄色提示  系统提示:TypeError: demo() missing 1 required positional argument: 'v'
# 3、错误的例子,数量多了
# demo(1, 2, 3, 4)  # 有一个黄色提示  系统提示:TypeError: demo() takes 3 positional arguments but 4 were given


def person(name, age):
    print(f"姓名{name}")
    if age > 18:
        print(f"{name}已成年")
    else:
        print(f"{name}未成年")


# 4、顺序错
# person(22, 'tom')  # TypeError: '>' not supported between instances of 'str' and 'int'
# 5、正常
person('jack', 28)

2、关键字参数

  • 使用形式参数的名字确定输入的参数值

  • 不需要与形式参数的位置完全一致

"""关键字参数"""


def person(name, age):
    print(f"姓名:{name}")
    if age > 18:
        print(f"{name}已成年")
    else:
        print(f"{name}:未成年")


person(age=25, name='杨幂')

3、设置默认参数

  • 定义函数时可以指定形式参数的默认值

  • 指定默认值的形式参数 必须放在所有参数的最后 ,否则会产生语法错误

  • param=default_value :可选,指定参数并且为该参数设置默认值为 default_value

  • 注意:给形式参数设置默认值, 默认值要用不可变对象 (整数型、浮点型、元组、布尔值、字符串),用可变对象(字典,列表),默认值可能会催着调用发生变化

# 注意:给形式参数设置默认值,默认值要用不可变对象(整数型、浮点型、元组、布尔值、字符串),可变对象(字典,列表)
# 错误示范,默认值为空列表
def wrong_demo2(a, b, c=[]):
    c.append(a)
    c.append(b)
    print(a, b, c)


wrong_demo2(1, 2)
wrong_demo2(3, 4)

"""设置默认参数"""


def person(name, age, international='中国'):
    print(f"姓名:{name}")
    print(f"国籍为{international}")
    if age > 18:
        print(f"{name}已成年")
    else:
        print(f"{name}:未成年")


person(name='jace', age=30)
person(name='tom', age=25, international='美国')


# 错误的,默认值没有放在最后
def age(a=18, c, b):
age(c, b)   # 系统报错:SyntaxError: non-default argument follows default argument

4、可变参数

  • 可变参数也称为不定长参数

  • 传入函数中实际参数可以是任意多个

  • 常见形式()

    • *args

      接收任意多个 实际参数 ,并将其放到一个 元组中

      使用已经存在的 列表或元组 作为函数的可变参数,可以在列表的名称前加 *

    • **kwargs

      接收任意多个类似 关键字 参数一样显式赋值的实际参数,并将其放到一个 字典 中

      使用已经存在字典作为函数的可变参数,可以在字典的名称前加 **

# *args 接收任意多个实际参数,并将其放到一个元组中
# 函数定义中的*args相当于打包
def print_language(*args):
    print(args)
    for a in args:
        print(a)


# 调用函数,把不同数量的参数传递进去,用位置参数
# print_language('python', 'java')
# print_language('python', 'java', 'php', "go")

# 函数调用时*args相当于解包
lis = ['python', 'java', 'php', "go"]
# 相当于 print_language('python', 'java', 'php', "go")
print_language(*lis)

# **kwargs 接收任意多个类似关键字参数一样显式赋值的实际参数,并将其放到一个**字典**中
# 函数定义中的**kwargs相当于打包
def print_info(**kwargs):
    print(kwargs)
    for a in kwargs.items():
        print(a)


print_info(tom=18, jack=24)
print_info(tom=18, jack=24, Aice=25)
# 函数调用时**kwargs相当于解包
di = {'cat': 18, 'jace': 24, 'alict': 65}
print_info(**di)

六、 函数返回值

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

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

"""函数返回值"""


# 定义加法函数
def sum(a, b):
    result = a + b
    # 函数返回值
    # return result, a, b  # 返回保存元组


r = sum(1, 2)
print(r)

lambda 表达式(匿名函数)

1、使用场景

  • 需要一个函数,但是又不想费神去命名这个函数

  • 通常在这个函数只使用一次的场景下

  • 可以指定短小的回调函数

2、语法

result = lambda [arg1 [, arg2, .... , argn]]: expression
  • result:调用 lambda 表达式

  • [arg1 [, arg2, …. , argn]]:可选,指定要传递的参数列表

  • expression:必选,指定一个实现具体功能的表达式

# 常规写法                              
def circle_area(r):                 
    """                             
    计算圆的面积                          
    r:半径                            
    """                             
    result = math.pi * r ** 2       
    return result                   
r = 10                              
print(f"半径为{r}的面积为{circle_area(r)}")
                                    
# lanbda表达式                         
# result = lambda 参数 : expression   
result = lambda r: math.pi * r ** 2 
print(f"半径为{r}的面积为{circle_area(r)}")

# 对获取到的信息进行排序             
book_info = [             
    ('python', 15),       
    ('javn', 100),        
    ('软件测试基础', 25)        
]                         
print(book_info)          
# 指定规则排列                  
# lambda x: (x[1]) 返回了列表中每
book_info.sort(key=lambda 
print(book_info)                                  
Python lambda表达式:匿名函数的适用场景与限制 Lambda表达式是Python中用于创建匿名函数的简洁方式,适用于简单、一次性使用的场景。其基本语法为lambda arguments: expression,具有匿名性、简洁性和即时性等特点。Lambda常用于高阶函数参数、数据转换、条件筛选、GUI回调函数和Pandas数据处理等场景。然而,Lambda也存在限制,如只能包含单个表达式、缺乏文档字符串、调试困难等。与普通函数相比,Lambda在简单场景下更简洁,但在复杂逻辑中可读性较差。性能上,普通函数略快于Lambda,但差异通常可忽略。最佳实践建议 阅读详情

相关推荐

5.3、Python 匿名函数与 Lambda 表达式

"""这个函数计算两个数的和"""print(result) # 输出:8今天我们学习了 Python 中的匿名函数和 Lambda 表达式。Lambda 表达式可以让我们方便地创建简单的匿名函数,尤其是在作为参数传递给其他函数时非常有用。希望大家能够熟练掌握 Lambda 表达式的用法,提高编程效率。下次课我们继续学习新的内容,敬请期待!

qq_36807888的博客 233

Echarts相关属性

demoOption2: { // 当前列提示信息拼接 :params.value[1]:当前点的y坐标值 tooltip: { trigger: 'axis', formatter: function (params) { params = params[0]; var date = new Date(params.name); return date.getDate() + '/' .

yangwq的博客 1204

工业级隔离CAN FD收发器ISO1042设计实战:从原理到EMC防护

在工业自动化与伺服驱动系统中,CAN总线是实现设备间可靠通信的关键技术。其核心原理是通过差分信号传输和仲裁机制,在复杂电磁环境中实现多节点实时数据交换。这项技术的核心价值在于为高噪声、高干扰的工业现场提供了稳定、确定性的通信基础,是构建分布式控制系统不可或缺的环节。其典型应用场景包括新能源汽车电池管理、工业机器人伺服控制以及光伏逆变器集群通信等。本文将聚焦于如何通过高性能隔离CAN FD收发器(如TI的ISO1042)来应对地电位差、浪涌和高压串扰等现场挑战,深入解析其集成的电气隔离、±70V总线故障保护和

weixin_26834815的博客 382

python函数

Python函数与lambda 表达式(匿名函数)

m0_57696410的博客 295

Ubuntu升级遇到grub-efi-amd64-signed安装失败?3步搞定这个烦人错误

本文深度解析Ubuntu系统升级时grub-efi-amd64-signed安装失败并提示“cannot find EFI directory”错误的根本原因。该错误通常由EFI系统分区挂载异常、BIOS/UEFI引导模式不匹配或dpkg包状态死锁导致。文章提供了三步精准修复流程:首先检查并修复ESP分区挂载,其次处理dpkg依赖问题,最后针对传统BIOS系统提供适配方案,帮助用户安全彻底地解决这一常见升级难题。

r7s8t的博客 396

【Labview】对连续采集数据的一种采样方法

图1如图1,想要对这样一个连续信号进行数据点的采集,我根据网上收集到的方法,在此分享一下最终的结果。可以拓展结合文件的写入,完成对连续信号的采集和输出。 已知: 一个连续信号,如图1. 目标: 设定一定采集点个数、采集点时间间隔、和采集周期次数,得到这条连续信号的数据点,如图2. 图2 方法如下: 主要利用的是队列的方法。 在连续信号生成的时候,不断的写入队列,并且清除队列。 ...

李时珍食疗志的博客 1万+

[jsp学习 | paramValues使用]paramvalue使用案例

title: paramvalue使用案例。

个人博客地址为http://elikhb.top/ 660

基于Simulink的BCH码编解码仿真建模示例

BCH码是一类循环码,能够纠正一定数量的随机错误。灵活性:可以根据需要选择不同的码长和纠错能力。高效性:适用于短码长和中等码长的场景,广泛用于卫星通信、存储系统等。实现简单:编码和解码过程可以通过硬件或软件高效实现。在本示例中,我们将使用MATLAB/Simulink中的和模块来完成BCH码的编解码操作,并通过仿真验证其误码率(BER)性能。通过本指南,我们介绍了如何基于Simulink搭建一个BCH码的编解码模型,并进行了仿真以验证其性能。背景介绍:理解BCH码的基本原理及其在通信系统中的应用。

xiaoheshang_123的博客 188

第6讲 .ParamValue 请求参数Spring Boot

使用 PramValue传递参数, 首先在初始页面上写一个 标签, 请求后台,参数名 为 q ,参数值为:你好,我的神! 在CruiseController中,写一个方法say() 方法的映射 @RequestMapping("/param") 方法的参数:@RequestParam(value="q",required=false) String param 视图的名字为:para...

Cruise的博客 2319

道路施工检测 (construction) - 基于Mapillary Vistas数据集的YOLOv11目标检测及UI界面实现

目标检测是计算机视觉的重要任务,目标是识别图像中的目标物体类别及其位置(用边界框表示)。两阶段检测器:如Faster R-CNN,准确度高但速度较慢单阶段检测器:如YOLO系列、SSD,速度快且精度相对较好,适合实时场景数据量:约25,000张高分辨率街景图标注类型:语义分割、实例分割、多类别检测类别示例:construction, road, car, person, traffic sign等格式:COCO风格JSON标注。

YOLO 496

EfficientNet 改进:StripCGLU模块的创新与应用

本文提出了一种改进的EfficientNet-b0模型,核心创新是通过引入StripCGLU模块来提升网络性能。StripCGLU结合了水平/垂直条带卷积和GLU激活机制,具有参数效率高、计算量少的优点。改进策略包括选择性替换部分MBConv为StripCGLU模块(每隔3个块插入),同时保留早期层结构。测试表明该模型适用于移动端视觉任务,在保持效率的同时提升性能。代码实现包含模块定义、模型构建及测试部分,展示了如何通过精心设计的模块改进现有网络架构。

Henry的博客 241

Python实战基础11-函数

运行结果:从上图所报异常信息可以看出,抛出的异常类型为TypeErro,具体是指“price()”方法缺少一个必要的位置参数z“。在调用函数时,指定的实际参数的位置必须与形式参数的位置一致,否则会产生两种结果。情况一抛出TypeError异常:运行结果:从上面运行结果所报的异常,可以发现报错原因是因为传递的整型数值不能与字符串进行连接操作。情况二产生的结果与预期不符:运行结果:预期运行的结果:从结果中可以看出,虽然没有抛出异常,但是得到的结果与预期不一致。

weixin_48719464的博客 3616

微信公众号 - 最新详细实现H5网页接入微信支付功能,开发移动端、PC端网站集成使用微信支付流程及示例代码,公众号网页利用JS-SDK/JSAPI/H5支付授权唤起微信支付,可脱离微信环境支付或内置浏

微信公众号,微信支付,网页,移动端,h5,扫码支付,二维码付款,手机网页,电脑pc网页生成支付二维码,js-sdk,jsapi,外部浏览器调起微信支付,脱离微信环境,在微信内置浏览器如何进行微信支付,前端H5微信支付,web网站,vue2,vue3,nuxt2,nuxt3,jquery,微信公众号h5支付流程,如何实现,怎么做,回调报错,redirect_uri参数错误,必须部署才能调试吗,怎么不打包发布就能在本机测试,微信H5支付能力,uniapp微信支付,h5页面调起支付,支付没反应,无效,失败,H5页

🏆 前端领域优质创作者 6101

Python 开发(16):Python 中的 Lambda 表达式与匿名函数

在 Python 的世界中,函数是代码组织、逻辑复用的重要工具。而lambda表达式,作为一种简洁的匿名函数,因其灵活、轻量级的特性,在 Python 开发中得到了广泛应用。无论是简化代码逻辑,还是作为高阶函数的配套工具,lambda都展示了它不可或缺的一面。本文将带你全面深入了解lambda表达式的语法、特点、使用场景与局限性,帮助你更好地掌握这一强大的工具。lambdalambdalambdalambda表达式,又称匿名函数,是一种无需显式命名的函数。在 Python 中,lambda。

一名热衷于技术的全栈开发者,专注于前端与后端的全面技术探索。在这里,我将分享我在技术领域的学习与成长,助力更多开发者的进步。 1775

【LSTM回归预测】attention机制LSTM时间序列回归预测【含Matlab源码 1992期】

attention机制LSTM时间序列回归预测 完整的代码,方可运行;可提供运行操作视频!适合小白!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 2591

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

lambda表达式python_Python匿名函数

匿名函数什么是匿名函数?顾名思义,即是不需要显式的指定函数名。匿名函数有个限制,就是只能有一个表达式,不用写return,返回值就是该表达式的结果。用匿名函数有个好处,因为函数没有名字,不必担心函数名冲突。此外,匿名函数也是一个函数对象,也可以把匿名函数赋值给一个变量,再利用变量来调用该函数:有些函数在代码中只用一次,而且函数体比较简单,使用匿名函数可以减少代码量Lambda 关键字在P...

weixin_39850143的博客 118

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

python 匿名函数添加判断_Python中匿名函数与Lambda表达式

python高级应用与数据分析学习笔记 041、匿名函数# 函数的基本使用def function1(x,y):return x+yprint(function1(10,20))# 对一个列表进行求平方,我们之前一般会这么做result = []for i in range(1,11):result.append(i**2)print(result)# 使用了匿名函数我们可以这么做print([i...

weixin_29123181的博客 513

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

python匿名函数lambda_Python匿名函数 Lambda表达式作用

在Python这门优美的编程语言中,支持一种有趣的语法格式(表达式),可以让我们在单行内创建一个最小的函数—python lambda匿名函数。据说是借鉴了Lisp语言中lambda表达式,它可以使用在任何需要使用函数的地方,因为没有名字所以叫做匿名函数,所以不会污染python代码的命名空间。玩蛇网斯巴达今天就来讲一讲关于Python Lambda表达式的相关知识,提示:想要精通或者深入学习了解...

weixin_39771351的博客 131

技术图文:Python 匿名函数 VS. C# Lambda表达式

背景 前段时间在知识星球上立了一个Flag,至少写10篇关于 Python,Matlab 和 C# 对比的总结。 这是第 2 篇,从定义和应用两个角度来对比 Python 的匿名函数 与 C# 的Lambda表达式。 匿名函数/Lambda表达式的定义 Python 匿名函数 在 Python 里有两类函数: 第一类:用 def 关键词定义的正规函数 第二类:用 lambda 关键词定义的匿名函数 python 使用 lambda 关键词来创建匿名函数,而非def关键词,它没有函数名,其语法结构如下

老马的程序人生 945

Python中的匿名函数(lambda表达式)【建议收藏】

前言:本博文主要讲解Python中匿名函数(lambda)的概念与用法。 文章目录一、lambda表达式二、lambda语法三、lambda体验四、lambda的参数形式1. 无参数2. 一个参数3. 默认参数4. 可变参数:*args5. 可变参数:**kwargs五、lambda的应用1. 带判断的lambda2. 列表数据按字典key的值排序六、lambda的特征 一、lambda表达式 lambda表达式,又称匿名函数,是现代各种编程语言争相引入的一种语法,其功能堪比函数,设计却比函数简洁。 应用场

路虽远,行则必至! 1762

Python学习之 ---匿名函数lambda表达式

本文实例讲述了python中的lambda表达式用法。分享给大家供大家参考,具体如下: 这里来为大家介绍一下lambda函数。 匿名函数 匿名:隐匿名字,既没有名称 lambda 表达式 Python中,使用lambda 表达式构建匿名函数 lambda x:x*2 #定义 (lambda x,y: x+y)(4,5)#加一个括号表示成函数,后面加(4,5)表示传参.在冒号之后不允许出现等号★★★...

等风来的博客 1039

python匿名函数表达式_Python匿名函数:lambda表达式

1、Python 用 lambda 表达式创建匿名函数。图:Python语言lambda表达式语法2、示例:图:lambda表达式示例3、匿名函数做返回值4、lambda 表达式做函数参数图:lambda表达式做函数参数5、lambda表达式可以嵌套图:lambda表达式嵌套6、lambda表达式与作用域lambda 表达式参数只在lambda表达式内可见:图:lambda表达式参数为局部变量la...

weixin_39565910的博客 189

python使用什么表达式来创建匿名函数_12_Python的(匿名函数)Lambda表达式_Python编程之路...

Python作为一门高级语言,与很多编程语言一样都具有匿名函数这一特征匿名函数,也就Lambda表达式,通俗来讲就是不用命名的方法,直接定义,直接用即可创建匿名函数需要用到Lambda关键字,下面我们通过一个简单的匿名函数的创建熟悉匿名函数lambda a,b : a + b这个表达式返回的值是a加上b的值,他需要传入两个参数,也就是a,b,同时还需要一个表达式,这样才能构成一个完整的匿名函数通...

weixin_40002846的博客 317

Python——函数——lambda表达式和匿名函数

Python——函数——lambda表达式和匿名函数 lambda表达式可以用来声明匿名函数。 lambda函数是一种简单的,在同一行中定义函数的方法。 lambda函数实际上生成了一个函数对象 lambda表达式只允许包含一个表达式,不能包含复杂语句,该表达式的计算结果就是函数的返回值。 基本用法 lambda arg1,arg2,arg3… : <表达式> (1)arg1/arg2/arg3为函数的参数。 (2)<表达式>相当于函数体 (3)运算结果:表达式的运算结果

mstcoder的博客 568

Python匿名函数:lambda表达式

在Python编程中,函数是组织代码和实现逻辑的基础单元。除了使用def关键字定义命名函数外,Python还提供了创建匿名函数的方式,即lambda表达式。lambda表达式是一种简洁的函数定义方式,通常用于需要简短函数的场景。本文将详细介绍Python匿名函数的概念、使用场景及其高级用法,结合具体的示例代码,帮助更好地理解和应用lambda表达式。什么是lambda表达式lambda表达式是一种...

涛哥聊Python 732

Python lambda表达式(匿名函数)及用法

Python lambda表达式(匿名函数)及用法 对于定义一个简单的函数,Python还提供了另外一种方法,即使用本节介绍的 lambda 表达式。 lambda 表达式,又称匿名函数,常用来表示内部仅包含 1 行表达式的函数。如果一个函数的函数体仅有 1 行表达式,则该函数就可以用 lambda 表达式来代替。 lambda 表达式的语法格式如下: name = lambda [list] : 表达式 其中,定义 lambda 表达式,必须使用 lambda 关键字;[list] 作为可选参数.

adong6561975的博客 598
上一篇: Python实战案例,CV2模块,Python实现抖音字符视频
下一篇: Python实现读取Word表格计算汇总写入Excel
Python_xiaowu
博客等级 码龄5年 3096粉丝 178原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值