python---函数的进阶

函数的进阶

1.8函数的进阶

1.8.1函数作为参数进行传入

1.简介:函数作为范围进行传递到函数中进行操作

2.函数作为参数传入到函数中

3.函数调用和逻辑传入之间的区别

  • 一个是作为数据进行传入,但是调用的函数时一定的
  • 一个作为逻辑进行调用,但是调用的数据时一定的

4.参考代码

# 函数传入函数

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

# 定义一个函数作为准备进行传入另外一个函数中
# a+b的函数
def add(a,b):
    return a+b;
# a-b的函数
def rem(a,b):
    return a-b;
# 调用,传入函数
test_func(add)
test_func(rem)

此时的函数是可以不固定的,内部的数据可以是固定的。传入的值就是函数的名称

1.8.2lambda匿名函数

  • def原先定义的函数是带有名称的
  • lambda定义的函数可以没有名称的

1.lambda函数定义的方式

3.采用匿名函数的方式定义函数

  • 只能临时使用一次。因为不带名字
  • def是带名字可以重复的进行使用的

好处:

  • 简洁
  • 方便

# lambda函数
def test_func(add):
    result=add(1,2)
    print(f"add的结果为,{result}")

# 采用匿名函数的方式定义add函数
# 前面是参数的定义,后面的是对应的函数的定义,注意点的点在于计算的逻辑必须是一行的
test_func(lambda x,y:x+y)

小结

1.8.3函数的多返回值

  • 多个逗号隔开,多个参数进行接收

1.基本的语法

2.案例

# 函数的多返回值
# 逗号分开
def func(a,b):
    return a+b,a-b,a*b,a/b
a,b,c,d=func(1,2)
print(a)
print(b)
print(c)
print(d)


1.8.4函数的多种传参方式

1.位置参数

  • 就是根据参数的位置进行传递参数的值,这个就是函数最基本的使用的方式

2.关键字参数

  • 可以不受位置的限制
  • 键值对的形式进行参数的传递
  • 必须在最后一位,注意。
  • 对于没有指定的位置的参数可以自己任意的进行指定的

# 参数的传递的方式
def func(name,age ,gender):
    print(f"{name},今年,{age},岁,性别,{gender}")

# 默认的方式
func("小米",20,"男")

# 关键字参数
# 不受到顺序的限制
func(age=20,gender="男",name="小米")

# 关键字和默认的混用
func("小米",20,"男")

# 设置函数的默认值
def func(name,age ,gender="男"):
    print(f"{name},今年,{age},岁,性别,{gender}")

4.不定长的参数

  • 默认的就是元组的形式

# 位置的不定长
# 采用的是元组的不定长的形式
def test(*args):
    print("位置不定长的参数:",end='')
    print(args)
    print(f"类型是,{type(args)}")
test(1,2,3,4)

#关键字的不定长
# 采用的是字典的不定长的传入的形式

def testx(**x):
    print("位置不定长的参数:",end='')
    print(f"类型是,{type(x)}")
    print(x)
testx(id=1,name='张三',age=12,sex='男')

小结:

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

PTA——1036 跟奥巴马一起编程、1037 在霍格沃茨找零钱、1038 统计同成绩学生、1039 到底买不买、1040 有几个PAT

1036 跟奥巴马一起编程 解决代码 模拟题目即可。 #include<iostream> #include<vector> #include<algorithm> using namespace std; int main(){int n;char c;cin>>n>>c;double col(double)n/2;int n0n/2;if(col>n00.4) n01; for(int i0;i&…

华为路由器 基本ACL配置

1、什么是ACL&#xff1f; 访问控制列表ACL&#xff08;Access Control List&#xff09;是由一条或多条规则组成的集合。所谓规则&#xff0c;是指描述报文匹配条件的判断语句&#xff0c;这些条件可以是报文的源地址、目的地址、端口号等。 ACL本质上是一种报文过滤器&…

Android 高通Camera2 Camera Device Close

1、很多人看到这个日志第一感觉可能觉得哪里没有合理释放&#xff0c;于是带着这个思路去进行百度探索 2、一开始我去寻找 ImageReader.OnImageAvailableListener 这个问题 var afterBitmap: Bitmap? null/**监听拍照的图片 */private val imageAvailableListener ImageRead…

GPT免费网站分享(持续更新)

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

从二叉查找树到B*树,一文搞懂搜索树的演进!|金三银四系列

对于准备面试这篇再适合不过了&#xff01;详细讲解了从BST、AVL、红黑树、B树、B树最后到B*树的演进过程&#xff0c;以及各种结构的优劣。点击上方“后端开发技术”&#xff0c;选择“设为星标” &#xff0c;优质资源及时送达在面试中&#xff0c;面试官很容易抛出这样的问题…

Java设计模式-2、⼯⼚模式

⼯⼚模式 工厂模式是对简单工厂的一个衍生&#xff0c;解决了许多简单工厂模式的问题。 一、说⼀说简单⼯⼚模式 简单⼯⼚模式指由⼀个⼯⼚对象来创建实例&#xff0c;客户端不需要关注创建逻 辑&#xff0c;只需提供传⼊⼯⼚的参数。 适⽤于⼯⼚类负责创建对象较少的情况&a…

wait讲解

hello啊,今天为大家带来wait的相关介绍 开始正题之前,我们要先进行一点知识点的补充 上一期我们更新了一期关于线程安全的知识,对于volatile在这里在做出一些补充 有些文章上说线程修改一个变量的时候,从主内存读取到工作内存上,在工作内存上修改完以后再返回主内存 由于t1线程…

[数据库原理与应用]educoder-MySQL 单表查询(一)

目录 第1关&#xff1a;用like匹配字符串 第2关&#xff1a;用BETWEEN AND表达查询范围 第3关&#xff1a;空值的判断 第4关&#xff1a;集合运算符IN的应用 第5关&#xff1a;消除重复结果 第6关&#xff1a;聚合函数应用 第7关&#xff1a;分组查询 第8关&#xf…

基于GPT3.5实现本地知识库解决方案-利用向量数据库和GPT向量接口-实现智能回复并限制ChatGPT回答的范围...

标题有点长&#xff0c;但是基本也说明出了这篇文章的主旨&#xff0c;那就是利用GPT AI智能回答自己设置好的问题 既能实现自己的AI知识库机器人&#xff0c;又能节省ChatGPT调用的token成本费用。 代码仓库地址 document.ai: 基于GPT3.5的通用本地知识库解决方案 下面图片是整…

【数据分析实战】基于python对Airbnb房源进行数据分析

文章目录&#x1f4da;引言&#x1f4d6;数据加载以及基本观察&#x1f4c3;缺失值观察及处理&#x1f516;缺失值观察以及可视化&#x1f516;缺失值处理&#x1f4c3;异常值观察及处理&#x1f4d6;数据探索&#x1f4a1;哪个区域的房源最受欢迎&#xff1f;&#x1f4a1;哪种…

完全二叉树的4种遍历方式

一张二叉树的图 1&#xff0c;二叉树的特点 每个点p的左儿子是p*2,右儿子是p*21&#xff0c;可以分别表示为p<<1与p<<1|1节点的序号是从左到右&#xff0c;从上到下增加的每个点至多2个儿子&#xff08;屁话&#xff08;bushi&#xff09;&#xff09; 2&#xff…

C语言自定义数据类型(六)使用枚举类型

目录 一、定义 二、详解 三、举例说明 一、定义 如果一个变量只有几种可能的值&#xff0c;则可以定义为枚举 (enumeration) 类型&#xff0c;所谓 “ 枚举 ” 就是指把可能的值一一列举出来&#xff0c;变量的值只限于列举出来的值的范围内。 声明枚举类型用 enum 开头。…

UR5 D-H信息 | UR5结构图 | UR5连杆名关节名 | UR5模型信息 | UR5 UDFR信息

这个问题遇到好多次了&#xff0c;不管是仿真还是可视化&#xff0c;都需要我清楚的掌握ur5的URDF信息。但是看官网的Ur5.urdf真的是看的迷迷糊糊的&#xff0c;总是无法把ur5机器人的某个部位和她的名字对应起来。之前都搞不太明白&#xff0c;今天好好整理一下&#xff0c;分…

工赋开发者社区 | 做好生产线的规划与布局,能给工厂带来什么好处?

导读工厂规划布局就是对设备、工作台、物料、工装、半成品、水、电、气等的综合配置&#xff0c;主要是研究工序之间、车间之间以及工厂整体配置的合理性&#xff0c;以达到整个生产系统的人流与物流畅通化、搬运最优化、流程最优化、效率最大化的目标。“想优化工厂空间&#…

NIO Reactor模型(含代码)

概览 我们知道NIO就是调用系统内核的的select/poll/epoll方法来实现&#xff0c;这些系统内核方法会扫描或监控IO&#xff0c;每次将所有的IO的状态返回给NIO线程。让NIO线程可以选择处理读取可读状态的IO流&#xff0c;也可以选择继续监控轮询监控IO的其它状态。 reactor模型也…

【web前端开发】超详细讲解CSS盒子模型

文章目录1.盒子模型介绍2.内容3.边框4.内边距5.⭐盒子大小计算6.⭐内减模式7.外边距外边距的合并外边距的塌陷行内元素的垂直外边距8.⭐清除默认样式9.⭐版心居中1.盒子模型介绍 所有HTML元素可以看作盒子,CSS盒模型本质上是一个盒子&#xff0c;封装周围的HTML元素&#xff0c…

C#多线程锁

背景&#xff1a;再一次测试中用户和我几乎同一时刻&#xff08;不知道谁先谁后&#xff0c;估计间隔在毫秒级&#xff09;操作了系统。 用户那边反馈显示的操作日志是我登录的信息。于是开始查找问题。首先排除了全局变量先后操作被覆盖的原因。首先A账户登录&#xff0c;然后…

基于stm32mp157 linux开发板ARM裸机开发教程3:Cortex-A7 架构与工作模式(连载中)

前言&#xff1a; 目前针对ARM Cortex-A7裸机开发文档及视频进行了二次升级持续更新中&#xff0c;使其内容更加丰富&#xff0c;讲解更加细致&#xff0c;全文所使用的开发平台均为华清远见FS-MP1A开发板&#xff08;STM32MP157开发板&#xff09; 针对对FS-MP1A开发板&…

用 ChatGPT 尝试 JavaScript 交互式学习体验,有用但不完美

很好&#xff0c;但还不能取代专家导师&#xff0c;有时还会犯错&#xff01;ChatGPT 教小狗编程&#xff08; Midjourney 创作&#xff09;GPT-4刚刚发布&#xff0c;相较于GPT-3.5&#xff0c;它有显著的增强功能。其中之一是它在更长时间的交互和更大的提示下&#xff0c;能…

Pytorch环境配置 完整流程 从CUDA和cuDNN到Torch安装

目录1. 安装CUDA2. 安装cuDNN3. 安装Pytorch1. 安装CUDA 确认需要的CUDA版本 nvidia-smi 下载CUDA.exe CUDA下载地址 结合自己电脑的情况下载对印度个版本 安装 双击后安装&#xff0c;可以修改安装路径&#xff0c;我安装在了D盘 安装方式选择自定义 全部勾选 这里如果电脑没…