python基础----05-----函数的多返回值、函数的多种参数使用形式、函数作为参数传递、lambda匿名函数

news2024/11/25 0:27:59

一 函数的多返回值

if __name__ == '__main__':
    # 演示使用多个变量,接收多个返回值
    def test_return ():
        return 1,'hello',True
    x,y,z = test_return()
    print(x)
    print(y)
    print(z)

    '''
    1
    hello
    True
    '''

二 函数的多种参数使用形式

分为以下四种。
在这里插入图片描述

2.1 位置参数

位置参数调用函数时根据函数定义的参数位置来传递参数,传递的参数和定义的参数的顺序及个数必须一致。
在这里插入图片描述

2.2 关键字参数

函数调用时通过“键=值”形式传递参数。
作用:可以让函数更加清晰、容易使用,同时也清楚了参数的顺序需求。
在这里插入图片描述
注意:
函数调用时,如果有位置参数时,位置参数必须在关键字参数的前面,但关键字参数之间不存在先后顺序。

2.3 缺省参数

缺省参数也叫默认参数,用于定义函数,为参数提供默认值,调用函数时可不传该默认参数的值(注意:所有位置参数必须出现在默认参数前,包括函数定义和调用)。
作用:当调用函数时没有传递参数,就会使用默认是用缺省参数对应的值。

if __name__ == '__main__':

    def myfunc1(name, age, gender='男'):
        print(f"名字:{name}, 年龄: {age}, 性别: {gender}")

    myfunc1("Tc", 18)
    myfunc1("Tc", 18, "女")

    # 错误,缺省参数name必须放在位置参数后面
    # def myfunc2(name="Hc", age, gender):
    #     print(f"名字:{name}, 年龄: {age}, 性别: {gender}")

在这里插入图片描述

注意,myfunc2的name="Hc"无法作为缺省参数,想要作为缺省参数,需要放在gender后面。
否则会报错:
在这里插入图片描述

2.4 不定长参数(可变参数)

不定长参数分为位置不定长参数和关键字不定长参数。
不定长参数用于不确定调用的时候会传递多少个参数(不传参也可以)的场景。

if __name__ == '__main__':
    # 位置不定长。参数类型是元组,接收不定长数量的参数传入
    def user_info(*args):
        print(f"args参数的类型是: {type(args)}, 内容是:{args}")
    user_info(1, 2, 3, '小明')

    # 关键字不定长,**号,参数是字典
    def user_info(** kwargs):
        print(f"args参数的类型是: {type(kwargs)}, 内容是:{kwargs}")
    user_info(name='小王', age=11, gender=' 男孩', addr='北京')

在这里插入图片描述

三 函数作为参数传递

if __name__ == '__main__':
    # 定义一个函数,接收另一个函数作为传入参数
    def test_func(compute):
        result = compute(1, 2)  # 确定compute 是函数
        print(f" compute参数的类型是: {type(compute)}")
        print(f"计算结果: {result}")

    # 定义一个函数,准备作为参数传入另一个函数
    def compute(x, y):
        return x + y

    # 调用,并传入函数
    test_func(compute)

    '''
     compute参数的类型是: <class 'function'>
    计算结果: 3
    '''

四 lambda匿名函数

  • def关键字,可以定义带有名称的函数。
  • lambda关键字,可以定义匿名函数(无名称)。

有名称的函数,可以基于名称重复使用。无名称的匿名函数,只可临时使用一次。

匿名函数定义语法:
lambda传入参数:函数体(一行代码)
if __name__ == '__main__':
    # 定义一个函数,接收另一个函数作为传入参数
    def test_func(compute):
        result = compute(3, 2)  # 确定compute 是函数
        print(f" compute参数的类型是: {type(compute)}")
        print(f"计算结果: {result}")

    # lambda表达式,只能临时使用,所以每次使用lambda都需要定义一次
    test_func(lambda x, y : x + y)
    test_func(lambda x, y : x - y)
    test_func(lambda x, y : x * y)

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/613374.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

卡尔曼滤波与组合导航原理(五)序贯Kalman滤波

量测维数很高&#xff0c;而且能写成很多分量&#xff0c;每一个分量可以看成一个小量测&#xff0c;可以序贯进行量测更新 优点是&#xff1a;计算快&#xff0c;数字稳定性更好&#xff0c;我们知道矩阵求逆是和维数的三次方成正比&#xff0c;分成小矩阵求逆快&#xff08;都…

自学大语言模型之Bert和GPT的区别

Bert和GPT的区别 起源 2018 年&#xff0c;Google 首次推出 BERT&#xff08;Bidirectional Encoder Representations from Transformers&#xff09;。该模型是在大量文本语料库上结合无监督和监督学习进行训练的。 BERT 的目标是创建一种语言模型&#xff0c;可以理解句子中…

(Day1)配置云开发提供的模板

创建云开发项目 打开微信开发者工具&#xff1b;点击“项目”->“新建项目”&#xff1b;输入项目名称和选择项目所要保存的目录&#xff1b;输入自己的AppID&#xff1b; AppID的获取&#xff0c;需要登陆微信公众平台&#xff0c;并点击“开发管理”->"开发设置…

凸优化系列——凸函数

1.凸函数的定义 凸函数直观上来说&#xff0c;就是两点之间的函数值小于两点连线的函数值 常见凸函数 线性函数既是凸函数&#xff0c;也是凹函数 对于二次函数&#xff0c;如果Q矩阵是半正定矩阵&#xff0c;那么它的二阶导为Q为半正定矩阵&#xff0c;根据凸性判定的二阶条…

SpringCloud微服务架构 --- 高级篇

一、初识Sentinel 1.1、雪崩问题及解决方案 1.1.1、雪崩问题 微服务调用链路中的某个服务故障&#xff0c;引起整个链路中的所有微服务都不可用&#xff0c;这就是雪崩。 1.1.2、解决雪崩问题的常见方式有四种 1.1.2.1、超时处理 设定超时时间&#xff0c;请求超过一定时间…

Swagger原理

最近在基于Swagger进行二次开发&#xff0c; 来对项目的接口进行管理&#xff0c;功能实现了&#xff0c;但是不清楚swagger的工作原理&#xff0c;为了后续能更好利用Swagger来管理接口&#xff0c;而且能借鉴Swagger的原理&#xff0c;将项目中其他信息可视化展示&#xff0c…

什么是测试驱动开发?测试驱动开发有什么优点?

目录 前言 什么是TDD或测试驱动开发&#xff1f; 什么是软件单元测试&#xff1f; 什么是TDD&#xff1f; 测试驱动开发的好处 最后的想法 前言 测试是任何软件开发项目中最重要的步骤之一。如果跳过此过程&#xff0c;则结果可能是灾难性的-对项目和公司而言。但是什么时…

K8s in Action 阅读笔记——【11】Understanding Kubernetes internals

K8s in Action 阅读笔记——【11】Understanding Kubernetes internals 11.1 Understanding the architecture Kubernetes集群分为两个部分&#xff1a; k8s控制平面工作节点 控制平面的组件 构成控制平面的组件有&#xff1a; etcd&#xff1a;etcd是一个分布式的持久化键…

javascrip基础二十八:说说函数节流和防抖?有什么区别?如何实现?

一、是什么 本质上是优化高频率执行代码的一种手段 如&#xff1a;浏览器的 resize、scroll、keypress、mousemove 等事件在触发时&#xff0c;会不断地调用绑定在事件上的回调函数&#xff0c;极大地浪费资源&#xff0c;降低前端性能 为了优化体验&#xff0c;需要对这类事…

类与对象知识总结+构造函数和析构函数 C++程序设计与算法笔记总结(二) 北京大学 郭炜

类和对象 结构化程序设计 C语言使用结构化程序设计&#xff1a; 程序 数据结构 算法 程序由全局变量以及众多相互调用的函数组成。 算法以函数的形式实现&#xff0c;用于对数据结构进行操作。 结构化程序设计的不足&#xff1a; 结构化程序设计中&#xff0c;函数和其所…

《嵌入式系统》知识总结11:STM32串口

串行通信vs并行通信 • 并行&#xff1a;使用8根数据线一次传送一个字节&#xff08;或使用16根数据线一次传送2个字节&#xff0c;...&#xff09; • 串行&#xff1a;使用少量数据信号线&#xff08;8根以下&#xff09;&#xff0c;将数据逐位分时传送 • 并行vs串行&…

路径规划算法:基于秃鹰优化的路径规划算法- 附代码

路径规划算法&#xff1a;基于秃鹰优化的路径规划算法- 附代码 文章目录 路径规划算法&#xff1a;基于秃鹰优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要&#xff1a;本文主要介绍利用智能优化算法秃鹰…

【三维编辑】Removing Objects From Neural Radiance Fields论文解读

题目&#xff1a;Removing Objects From NeRF 从神经辐射场中移除对象 论文&#xff1a;https://arxiv.org/abs/2212.11966 作者:Silvan Weder,Guillermo Niantic, ETH Zurich, University College London, nianticlabs.github.ionerf-object-removal 文章目录 摘要一、前言二、…

Batch Normalization原理

首先我们提出一个问题&#xff0c;为什么要有Batch Normalization这样神奇的操作&#xff1f;原有的深度神经网络是有什么问题吗&#xff1f; 还真有问题&#xff0c;那就要提到各位炼丹师们的困境&#xff0c;在深度学习中&#xff0c;模型的层数往往非常的巨大&#xff0c;尤…

SpringBootWeb AOP(下)

3. AOP进阶 AOP的基础知识学习完之后&#xff0c;下面我们对AOP当中的各个细节进行详细的学习。主要分为4个部分&#xff1a; 通知类型通知顺序切入点表达式连接点 我们先来学习第一部分通知类型。 3.1 通知类型 在入门程序当中&#xff0c;我们已经使用了一种功能最为强大…

磁盘配额与进阶文件系统管理(二)

逻辑卷管理(Logical Volume Manager) 简介&#xff1a;lvm可以弹性调节filesystem容量&#xff1b;lvm可以整合多个实体partion在一起&#xff0c;使得多个partion看起来像一个磁盘。 LVM基本概念 PV&#xff1a;物理卷 PE&#xff1a;实体范围区块 VG&#xff1a;卷组 …

前端食堂技术周刊第 85 期:5 月浏览器更新、TypeScript 5.1、Rspack 0.2.0、Parcel v2.9.0、Next.js 企业级模板

美味值&#xff1a;&#x1f31f;&#x1f31f;&#x1f31f;&#x1f31f;&#x1f31f; 口味&#xff1a;龙井酥 食堂技术周刊仓库地址&#xff1a;https://github.com/Geekhyt/weekly 本期摘要 5 月登陆浏览器的新功能TypeScript 5.1Rspack 0.2.0Parcel v2.9.0Next.js 企…

DINO代码学习笔记(四)

DINO代码学习笔记&#xff08;一&#xff09;中已经将输入transformer之前的参数处理给捋了一遍 DINO代码学习笔记&#xff08;二&#xff09;中将encoder部分给捋了一遍 DINO代码学习笔记&#xff08;三&#xff09;中将decoder部分给捋了一遍&#xff0c;以上将DINO的主体部…

聊一聊Spring Security的那些事

一.什么是Spring Security S[ing Security是一个基于Java EE框架Spring的安全性框架&#xff0c;它提供了身份认证和授权功能&#xff0c;用于保护应用程序中的资源。同时&#xff0c;它也支持许多常见的身份验证机制&#xff0c;并提供了预防常见攻击&#xff0c;如跨站请求伪…

[230603]托福听力精听|TPO66C2|Financial Advice

tuition bill 学费 add up 加总 allowance 补贴 budget 预算 document 文件 expense 费用&#xff1b;开销 semester 学期 dorm 宿舍 own 拥有&#xff1b;自己的 bulletin board…