6.Python 函数进阶(函数多返回值、函数多种传参方式、匿名函数)
一、函数多返回值
1、具体实现
def test_return():return 1, 2x, y = test_return()print(x)
print(y)
- 输出结果
1
2
2、解析
-
按照返回值的顺序,用对应顺序的多个变量接收,变量之间用逗号(,)隔开
-
支持返回不同类型的数据
二、函数多种传参方式
1、位置参数
(1)基本介绍
-
调用函数时根据函数定义的参数位置来传递参数
-
注:传递的参数和定义的参数的顺序及个数必须一致
(2)基本使用
def user_info(name, age, gender):print(f"您的名字是:{name},年龄是:{age},性别是:{gender}")user_info("jack", 20, "男")
user_info("mery", 18, "女")
user_info("tom", 25, "男")
- 输出结果
您的名字是:jack,年龄是:20,性别是:男
您的名字是:mery,年龄是:18,性别是:女
您的名字是:tom,年龄是:25,性别是:男
2、关键字参数
(1)基本介绍
-
函数调用时通过“【键】 = 【值】”形式传递参数
-
关键字函数可以让函数更加清晰、容易使用,同时也清除了参数的顺序需求
-
注:函数调用时,如果有位置参数时,位置参数必须在关键字参数的前面,但关键字参数之间不存在先后顺序
(2)基本使用
def user_info(name, age, gender):print(f"您的名字是:{name},年龄是:{age},性别是:{gender}")# 关键字传参
user_info(name = "jack", age = 20, gender = "男")# 关键字传参,可以不按照固定顺序
user_info(age = 18, name = "mery", gender = "女")# 可以和位置参数混用,位置参数必须在前,且对应参数位置
user_info("tom", age = 25, gender = "男")
- 输出结果
您的名字是:jack,年龄是:20,性别是:男
您的名字是:mery,年龄是:18,性别是:女
您的名字是:tom,年龄是:25,性别是:男
3、缺省参数
(1)基本介绍
-
缺省参数也叫默认参数,用于定义函数,为参数提供默认值,调用函数时可不传该默认参数的值
-
当调用函数时没有传递参数时,就会使用默认是用缺省参数对应的值
-
注:所有位置参数必须出现在默认参数前,包括函数定义和调用
(2)基本使用
def user_info(name, age, gender, vipLevel = 0):print(f"您的名字是:{name},年龄是:{age},性别是:{gender},vip 等级是:{vipLevel}")user_info("jack", 20, "男")
user_info("mery", 18, "女", 1)
user_info("tom", 25, "男", 2)
- 输出结果
您的名字是:jack,年龄是:20,性别是:男,vip 等级是:0
您的名字是:mery,年龄是:18,性别是:女,vip 等级是:1
您的名字是:tom,年龄是:25,性别是:男,vip 等级是:2
4、不定长参数
(1)基本介绍
-
不定长参数也叫可变参数. 用于不确定调用的时会传递多少个参数(不传参)的场景
-
不定长参数的类型有位置传递和关键字传递
| 类型 | 说明 |
|---|---|
| 位置传递 | 所有参数都会被 args 变量收集,同时根据传进参数的位置合并为一个元组 |
| 不定长传递 | 参数是“【键】 = 【值】”形式的情况下, 所有的键值对都会被 kwargs 变量收集, 同时组成字典 |
(2)基本使用
print("不定长参数 - 位置传递 ------------------------------")def get_Info1(*args):print(args, type(args))get_Info1("tom")
get_Info1("jack", 18)print(" 不定长参数 - 关键字传递 ------------------------------")def get_Info2(**kwargs):print(kwargs, type(kwargs))get_Info2(name = "mery")
get_Info2(name = "jerry", age = 20)
- 输出结果
不定长参数 - 位置传递 ------------------------------
('tom',) <class 'tuple'>
('jack', 18) <class 'tuple'>不定长参数 - 关键字传递 ------------------------------
{'name': 'mery'} <class 'dict'>
{'name': 'jerry', 'age': 20} <class 'dict'>
三、匿名函数
1、函数作为参数传递
(1)基本介绍
-
在前面的函数学习中,我们一直使用的函数,都是接受数据作为参数传入,有:数字、字符串、列表、元组、字典等
-
其实,函数本身也可以作为参数传入另一个函数内
(2)具体实现
def test_func(compute):result = compute(10, 20)print(result)def compute1(num1, num2):return num1 + num2
test_func(compute1)def compute1(num1, num2):return num1 * num2
test_func(compute1)
- 输出结果
30
200
(3)解析
-
test_func 函数需要一个函数作为参数传入,这个传入的函数需要接收两个数字进行计算,计算逻辑由这个被传入函数决定
-
compute1 / compute2 函数接收两个数字对其进行计算,compute 函数作为参数,传递给 test_func 函数
-
在 test_func 函数内部,由传入的 compute 函数,完成对数字的计算操作
(4)小节
- 将函数作为参数传入的作用在于传入计算逻辑,而非传入数据
2、lambda 匿名函数
(1)基本介绍
| 函数的定义 | 说明 |
|---|---|
| def 关键字 | 可以定义带有名称的函数,有名称的函数,可以基于名称重复使用 |
| lambda 关键字 | 可以定义匿名函数(无名称),匿名函数,只可临时使用一次 |
(2)匿名函数的定义
lambda 【传入参数】:【函数体(一行代码)】
-
lambda 是关键字,表示定义匿名函数
-
传入参数表示匿名函数的形参,如:num1、num2,表示接收两个形参
-
函数体,就是函数的执行逻辑,只能写一行,无法写多行代码
(3)基本使用
def test_func(compute):result = compute(20, 30)print(result)# 通过 lambda 关键字,传入一个一次性使用的 lambda 匿名函数
test_func(lambda num1, num2: num1 + num2)
test_func(lambda num1, num2: num1 - num2)
- 输出结果
50
-10
相关文章:
6.Python 函数进阶(函数多返回值、函数多种传参方式、匿名函数)
一、函数多返回值 1、具体实现 def test_return():return 1, 2x, y test_return()print(x) print(y)输出结果 1 22、解析 按照返回值的顺序,用对应顺序的多个变量接收,变量之间用逗号(,)隔开 支持返回不同类型的数据 二、函…...
视频汇聚平台EasyCVR支持云端录像丨监控存储丨录像回看丨录像计划丨录像配置
EasyCVR视频汇聚融合平台,是TSINGSEE青犀视频垂直深耕音视频流媒体技术、AI智能技术领域的杰出成果。平台以其强大的视频处理、汇聚与融合能力,在构建视频监控系统中展现出了独特的优势。 EasyCVR视频汇聚平台可接入传统监控行业中高清网络摄像机的RTSP…...
【Spring】获取 Cookie和Session
回顾 Cookie HTTP 协议自身是属于“无状态”协议 无状态:默认情况下,HTTP 协议的客户端和服务器之间的这次通信和下次通信之间没有直接的联系 但是在实际开发中,我们很多时候是需要知道请求之间的关联关系的 例如登录网站成功后ÿ…...
MyBatis-Plus 的核心插件及其使用介绍
MyBatis-Plus 是基于 MyBatis 的增强工具,为简化 MyBatis 的开发提供了诸多功能扩展。它的目标是减少重复代码、提高开发效率,提供了 CRUD(Create, Read, Update, Delete)操作的简化方法以及多种实用插件。以下是 MyBatis-Plus 的…...
雷池社区版本SYSlog使用教程
雷池会对恶意攻击进行拦截,但是日志都在雷池机器上显示 如何把日志都同步到相关设备进行统一的管理和分析呢? 如需将雷池攻击日志实时同步到第三方服务器, 可使用雷池的 Syslog 外发 功能 启用 Syslog 外发 进入雷池 系统设置 页面, 配置 Syslog 设置…...
Leetcode 下一个排列
首先理解整数的字典序,字典序排列总是优先让“较小的”元素出现在前面。字典序的排列规则类似于字典中的单词排列方式,从左到右逐位比较,较小的数字优先出现。按照正整数元素排列的字典序,如果将每个排列视为一个整数值࿰…...
WPF中的布局
布局原则 1、不显式设置元素大小。 2、不使用绝对定位。 元素应该根据容器的内容来进行排列。绝对定位在开发前期会带来一些便捷,但扩展性比较差。一旦显示器尺寸或分辨率发生改变,界面的显示效果可能会达不到预期的效果。 3、布局容器可以嵌套使用 常…...
【Spring】Spring和SpringMVC为什么需要父子容器
Spring和Spring MVC使用父子容器的设计模式,主要是为了实现更好的模块化和隔离,提高系统的灵活性和可维护性。具体来说,Spring应用通常包含两个层次的容器:根容器(Root WebApplicationContext)和子容器&…...
Origin制图——双轴线图实现
1.在我们平常的画图中,我们会遇到属于差别比较的两个数据,但是画两个图又太占地方了(难以实现对数据的比较工作),我们想把它画在一个图上,那么怎么实现呢。首先我们输入导入,可以选择excal文件导…...
【算法系列-哈希表】两个集合的交集问题
【算法系列-哈希表】两个集合的交集问题 文章目录 【算法系列-哈希表】两个集合的交集问题1. 两个集合的交集问题(LeetCode 349)1.1 思路分析🎯1.2 代码示例🌰 2.两个集合的交集问题II(LeetCode 350)2.1 思路分析🎯2.2 代码示例🌰…...
linux 效率化 - zsh + tmux
文章目录 简介涉及的资料/代码仓库让我们开始吧1. Oh my Zsh!2. 终端主题 - powerlevel10k (赋能优雅终端界面)3. Oh my Tmux!安装完成,再加点料1. tmux2. zsh 结语参考资料 简介 来看一段操作演示(全程键盘,没有鼠标…...
Python学习-函数
函数 文章目录 函数定义与调用参数传递内存分析返回值参数定义默认值参数个数可变的参数关键字参数 变量的作用域 匿名函数基本语法示例lambda与排序高阶函数map函数reduce函数filter函数 多关键字排序 定义与调用 函数可以嵌套用 先定义后调用 def calc(a,b):cabreturn cre…...
点评项目-4-隐藏敏感信息、使用 redis 优化登录业务
一、隐藏敏感信息 之前我们对 /user/me 路径,直接返回了登录的所有用户信息,其中的 passward 等敏感信息也会被返回到前端,这是很危险的,故我们需要选择性的返回用户信息,隐藏敏感用户信息 我们可以创建一个 UserDTO…...
Redis异步实现解析
目录 1. Redis 异步方式1.1 同步连接优点缺点示例:访问 Redis,并对 counter 实现自增1000次,统计用时 1.2 异步连接优点缺点1.2.1 Redis 驱动1.2.2 示例第1步:实现 Reactor第2步:实现 Redis 适配器第3步:实…...
matlab 相关
1、xcorr 本质上是两个函数做内积运算 相关算法有两种: 在Matlab上既可以 1.用自带的xcorr函数计算互相关,2.通过在频域上乘以共轭复频谱来计算互相关; 网友验证程序 clc;clear;close all; % s1,s2为样例数据 s1 [-0.00430297851562500;-…...
从组会尴尬到学术突破:Transformer助力跨域推荐解析
最近学习了Transformer模型,突然意识到我常阅读的一篇论文中也使用了Transformer。回想起上次开组会时,老师问我论文中的模型是什么,我当时没有答上来,现在才发现其实用的就是Transformer。这种学习过程让我深感,学得越…...
【Flutter、H5、Web?前端个人总结】分享从业经历经验、自我规范准则,纯干货
前言 hi,正式接触web前端已经经过了两年的时间,从大学的java后端转型到web前端,再到后续转战Flutter,逐渐对前端有了一些心得体会,其实在当下前端的呈现形式一直在变化,无论你是用原生、还是web还是混编的…...
mysql主从配置
一、准备工作 准备两个版本一致的数据库。 确认主库开启二进制日志,并配置server-id。 $ ##将 mysql的配置文件/home/mysql2/mysql/my.cnf 中关于二进制日志的配置 $ cd /home/mysql2/mysql/ $ vi my.cnf 修改如下 server-id 11 #log settings log_error erro…...
sklearn pipeline
示例代码 from sklearn.pipeline import Pipeline from sklearn.feature_extraction.text import CountVectorizer from sklearn.naive_bayes import MultinomialNB import numpy as np import scipy.linalg from sklearn.preprocessing import LabelEncoder, StandardScaler …...
springboot实现服务注册与发现
在Spring Boot应用中实现服务注册与发现通常使用Spring Cloud框架,其中Eureka和Consul是两个常用的服务注册与发现组件。以下是使用Eureka来实现服务注册与发现的基本步骤。 准备工作 添加依赖:在你的Spring Boot项目的pom.xml文件中添加Eureka相关的依…...
conda相比python好处
Conda 作为 Python 的环境和包管理工具,相比原生 Python 生态(如 pip 虚拟环境)有许多独特优势,尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处: 一、一站式环境管理:…...
React Native 导航系统实战(React Navigation)
导航系统实战(React Navigation) React Navigation 是 React Native 应用中最常用的导航库之一,它提供了多种导航模式,如堆栈导航(Stack Navigator)、标签导航(Tab Navigator)和抽屉…...
深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法
深入浅出:JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中,随机数的生成看似简单,却隐藏着许多玄机。无论是生成密码、加密密钥,还是创建安全令牌,随机数的质量直接关系到系统的安全性。Jav…...
苍穹外卖--缓存菜品
1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据,减少数据库查询操作。 缓存逻辑分析: ①每个分类下的菜品保持一份缓存数据…...
全志A40i android7.1 调试信息打印串口由uart0改为uart3
一,概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本:2014.07; Kernel版本:Linux-3.10; 二,Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01),并让boo…...
Map相关知识
数据结构 二叉树 二叉树,顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子 节点和右子节点。不过,二叉树并不要求每个节点都有两个子节点,有的节点只 有左子节点,有的节点只有…...
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南 在数字化营销时代,邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天,我们将深入解析邮件打开率、网站可用性、页面参与时…...
【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习
禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...
SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)
上一章用到了V2 的概念,其实 Fiori当中还有 V4,咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务),代理中间件(ui5-middleware-simpleproxy)-CSDN博客…...
以光量子为例,详解量子获取方式
光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学(silicon photonics)的光波导(optical waveguide)芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中,光既是波又是粒子。光子本…...
