Python入门到精通(六)——Python函数进阶
Python函数进阶
一、函数的多返回值
二、函数多种传参方式
1、位置参数
2、关键字参数
3、缺省参数
4、不定长参数
(1)位置传递
(2)关键字传递
三、匿名函数
(1)函数作为参数传递
(2)lambda匿名函数
一、函数的多返回值
如果一个函数出现了两个return,只可以执行第一个return,因为return可以退出当前函数,导致return下方代码不执行
1、定义

- 按照返回值的顺序,写对应顺序的多个变量接收即可
- 变量之间用逗号隔开
- 支持不同类型的数据return
代码示例
def test_return():return 1, 2, 3x, y, z = test_return() print(y) # 2
二、函数多种传参方式
1、位置参数
- 调用函数时根据函数定义的参数位置来传递参数
- 传递的参数和定义的参数的顺序及个数必须一致
代码示例
# 位置参数 def user_info(name, age, gender):print(f"姓名是{name},年龄是{age},性别是{gender}")user_info("m", 23, "女") # 姓名是m,年龄是23,性别是女
2、关键字参数
- 函数调用时通过“键=值”形式传递参数.
- 可以让函数更加清晰、容易使用,同时也清除了参数的顺序需求.
- 函数调用时,如果有位置参数时,位置参数必须在关键字参数的前面,但关键字参数之间不存在先后顺序
代码示例
# 关键字参数 def user_info(name, age, gender):print(f"姓名是{name},年龄是{age},性别是{gender}")user_info(gender="女", age=23, name="m") # 姓名是m,年龄是23,性别是女
3、缺省参数
- 缺省参数也叫默认参数,用于定义函数,为参数提供默认值,调用函数时可不传该默认参数的值(注意:所有位置参数必须出现在默认参数前,包括函数定义和调用).
- 当调用函数时没有传递参数, 就会使用默认是用缺省参数对应的值.
# 缺省参数(默认值必须写在最后面) def user_info(name, age, gender='女'):print(f"姓名是{name},年龄是{age},性别是{gender}")user_info("m", 24) # 姓名是m,年龄是24,性别是女
4、不定长参数
- 不定长参数也叫可变参数,用于不确定调用的时候会传递多少个参数(不传参也可以)的场景
- 当调用函数时不确定参数个数时, 可以使用不定长参数
(1)位置传递
- 以*号标记一个形式参数,传进的所有参数都会被args变量收集,它会根据传进参数的位置合并为一个元组(tuple),args是元组类型,这就是位置传递
代码示例
# 位置传递 def user_info(*args):print(args)user_info('CSDN') # ('CSDN',) user_info('CSDN', 2024) # ('CSDN', 2024)
(2)关键字传递
- 参数是“键=值”形式的形式以*号标记一个形式参数
关键字不定长传递以**号标记一个形式参数,以字典的形式接受参数,形式参数一般命名为kwargs
代码示例
# 关键字传递 def user_info(**kwargs):print(kwargs)user_info(name='momo_via', year=2024) # {'name': 'momo_via', 'year': 2024}
三、匿名函数
(1)函数作为参数传递
- 函数本身是可以作为参数,传入另一个函数中进行使用的。
- 将函数传入的作用在于:传入计算逻辑,而非传入数据。
代码示例
# 函数作为参数传递 def test_func(compute):result = compute(1, 2) # 确定compute是函数print(f"计算结果:{result}")# 定义一个函数,准备作为参数传入另一个函数 def compute(x, y):return x + y# 调用,并传入函数 test_func(compute) # 计算结果:3
(2)lambda匿名函数

- 匿名函数用于临时构建一个函数,只用一次的场景
- 匿名函数的定义中,函数体只能写一行代码,如果函数体要写多行代码,不可用lambda匿名函数,应使用def定义带名函数
# lambda匿名函数 def test_func(compute):result = compute(1, 2) # 确定compute是函数print(f"计算结果:{result}")test_func(lambda x, y: x + y) # 计算结果:3
相关文章:
Python入门到精通(六)——Python函数进阶
Python函数进阶 一、函数的多返回值 二、函数多种传参方式 1、位置参数 2、关键字参数 3、缺省参数 4、不定长参数 (1)位置传递 (2)关键字传递 三、匿名函数 (1)函数作为参数传递 (2&…...
docker: missing signature key
问题描述 下载某些docker镜像时,可能会报missing signature key错误。 原因分析 docker推出了新的镜像构建工具,比较老版本的docker不能识别这种格式。用阿里云镜像源安装的docker版本是1.13.1,这个版本是2017年发布的,需要升级…...
选型 之 工业相机篇
一、概述 23年24年行情不会好,公司各种想办法裁员,在大陆这个大熔炉中只能不断地提炼。我个人主要是在工业领域做2D图像算法和3D算法,但是现在出去都需要全能人才 方案、算法、运动控制等,我目前最大的短板就是方案,在…...
深入解析美颜SDK和动态贴纸技术的工作原理与应用
美颜SDK和动态贴纸技术作为图像处理领域的瑰宝,为用户提供了实时、高质量的美化效果。 一、美颜SDK的工作原理 美颜SDK是一种集成在移动应用、直播平台中的处理工具,通过算法实现实时美颜效果。 1.人脸检测与关键点定位 美颜的第一步是识别图像中的人…...
java代码中调用自定义函数
定义函数 CREATE DEFINERrootlocalhost FUNCTION test_fun1(num1 FLOAT,num2 FLOAT) RETURNS float BEGINDECLARE SUM FLOAT DEFAULT 0;SET SUMnum1num2;RETURN SUM; END <select id"cunchu" resultType"java.util.Map">SELECT test_fun1(1,2) as r…...
备战蓝桥杯---数据结构与STL应用(基础实战篇1)
话不多说,直接上题: 当然我们可以用队列,但是其插入复杂度为N,总的复杂度为n^2,肯定会超时,于是我们可以用链表来写,同时把其存在数组中,这样节点的访问复杂度也为o(1).下面是AC代码: 下面我们来…...
项目解决方案:非执法视频监控系统项目设计方案
目 录 一、概述 (一)前言 (二)设计思路 (三)设计原则 1、实用性 2、可靠性 3、安全性 4、先进性 5、开放性 6、易管理、易维护 (四)设计依据 二、方案总…...
网络安全01--负载均衡
目录 一、环境准备 1.1三台虚拟机 二、开始搭建负载均衡: 2.1准备一下源 2.2正式安装 2.3Nginx安装情况 三、负载均衡--轮询(round robin) 3.1在 http 部分添加如下负载均衡配置: 3.2简单解释一下server端: …...
Mamba系列日积月累(一):状态空间模型SSM的离散化过程推导
文章目录 1. 背景基础知识1.1 什么是状态空间模型(State Space Model,SSM)?1.2 什么是离散化(Discretization)?1.3 为什么需要离散化? 2. SSM离散化过程推导2.1 为什么在离散化过程中…...
React中使用LazyBuilder实现页面懒加载方法二
前言: 在一个表格中,需要展示100条数据,当每条数据里面需要承载的内容很多,需要渲染的元素也很多的时候,容易造成页面加载的速度很慢,不能给用户提供很好的体验时,懒加载是优化页面加载速度的方…...
安全测试:史上最全的攻防渗透信息收集方法、工具!
信息收集的意义 信息收集对于渗透测试前期来说是非常重要的。正所谓,知己知彼百战不殆,信息收集是渗透测试成功的保障,只有我们掌握了目标网站或目标主机足够多的信息之后,才能更好地进行渗透测试。 信息收集的方式可以分为两种…...
minio2023版本安装对象存储文件迁移
一、环境 minio版本:minio-20230320201618.0.0.x86_64.rpm 二、安装 将下载好的rpm包放在文件夹下,然后cd到该目录 sudo rpm -ivh minio-20230320201618.0.0.x86_64.rpm 三、启动 1、minio的位置 which minio cd /usr/local/bin 2、启动 (可…...
###C语言程序设计-----C语言学习(7)#(调试篇)
前言:感谢您的关注哦,我会持续更新编程相关知识,愿您在这里有所收获。如果有任何问题,欢迎沟通交流!期待与您在学习编程的道路上共同进步。 一. 程序调试 1.程序调试介绍: 程序调试是软件开发过程中非常重…...
腾讯云Linux(OpenCloudOS)安装tomcat9(9.0.85)
腾讯云Linux(OpenCloudOS)安装tomcat9 下载并上传 tomcat官网 https://tomcat.apache.org/download-90.cgi 下载完成后上传至自己想要放置的目录下 解压文件 输入tar -xzvf apache-tomcat-9.0.85.tar.gz解压文件,建议将解压后的文件重新命名为tomcat,方便后期进…...
动态添加字段和注解,形成class类,集合对象动态创建Excel列
一.需求 动态生成Excel列,因为Excel列是通过类对象字段注解来添加,在不确定Excel列数的情况下,就需要动态生成列,对应类对象字段也需要动态生成; 二.ByteBuddy字节码增强动态创建类 1.依赖 <dependencies><…...
Python爬虫---Scrapy框架---CrawlSpider
CrawlSpider 1. CrawlSpider继承自scrapy.Spider 2. CrawlSpider可以定义规则,再解析html内容的时候,可以根据链接规则提取出指定的链接,然后再向这些链接发送请求,所以,如果有需要跟进链接的需求,意思就是…...
关机恶搞小程序
1. system("shutdown")的介绍 当system函数的参数是"shutdown"时,它将会执行系统的关机命令。 具体来说,system("shutdown")的功能是向操作系统发送一个关机信号,请求关闭计算机。这将触发操作系统执行一系列…...
《HTML 简易速速上手小册》第9章:HTML5 新特性(2024 最新版)
文章目录 9.1 HTML5 新增标签和属性9.1.1 基础知识9.1.2 案例 1:创建一个结构化的博客页面9.1.3 案例 2:使用新的表单元素创建事件注册表单9.1.4 案例 3:创建一个具有高级搜索功能的搜索表单 9.2 HTML5 表单增强9.2.1 基础知识9.2.2 案例 1&a…...
计算机网络之NAT
NAT(网络地址转换,Network Address Translation)是一种网络技术,用于在一个网络与另一个网络之间重新映射IP地址。NAT最常见的应用是在家庭和小型办公室的路由器中,用于将私有(内部)IP地址转换为…...
SQL - 数据操作语句
SQL - 数据操作语句 文章目录 SQL - 数据操作语句数据操作语言-DML1 新增2 修改3 删除4 清空 数据类型1 数值类型2 字符串类型3 日期时间类型 数据操作语言-DML 概念: DML(Data Manipulation Language), 数据操作语言。对数据表数据的增、删…...
不升级系统也能用VSCode远程开发:老版本Linux的glibc兼容方案大全
老版本Linux系统下VSCode远程开发的五大兼容方案 在企业开发环境中,生产服务器往往运行着CentOS 7或Ubuntu 18.04等长期支持版本,这些系统的glibc库版本可能无法满足最新VSCode远程开发组件的需求。本文将深入探讨五种无需升级系统即可解决glibc兼容性问…...
TCC-G15散热控制实战指南:释放Dell游戏本性能潜力
TCC-G15散热控制实战指南:释放Dell游戏本性能潜力 【免费下载链接】tcc-g15 Thermal Control Center for Dell G15 - open source alternative to AWCC 项目地址: https://gitcode.com/gh_mirrors/tc/tcc-g15 一、问题发现:游戏本散热困境的技术根…...
为什么Scarab模组管理器能让空洞骑士的模组安装变得如此简单?
为什么Scarab模组管理器能让空洞骑士的模组安装变得如此简单? 【免费下载链接】Scarab An installer for Hollow Knight mods written in Avalonia. 项目地址: https://gitcode.com/gh_mirrors/sc/Scarab 还在为《空洞骑士》模组安装的复杂流程而头疼吗&…...
OpenClaw健康检查方案:千问3.5-35B-A3B-FP8长期运行维护指南
OpenClaw健康检查方案:千问3.5-35B-A3B-FP8长期运行维护指南 1. 为什么需要健康检查? 去年冬天的一个深夜,我被手机警报惊醒——部署在家庭服务器的OpenClaw千问3.5组合突然停止了响应。检查日志发现是显存泄漏导致进程崩溃,而当…...
基于台达PLC与C# GDI+的步进电机轨迹可视化系统设计
1. 系统设计背景与核心需求 在工业自动化领域,步进电机的精确控制与运动轨迹可视化一直是工程师们关注的重点。传统调试方式往往依赖示波器或专用监控设备,不仅成本高昂,而且难以实时观察复杂运动轨迹。我们设计的这套系统,通过台…...
DeepSeek-R1-Distill-Qwen-1.5B效果展示:同一问题下思考链vs直答效果对比
DeepSeek-R1-Distill-Qwen-1.5B效果展示:同一问题下思考链vs直答效果对比 1. 项目概述 DeepSeek-R1-Distill-Qwen-1.5B是一个超轻量级的智能对话模型,基于魔塔平台下载量最高的蒸馏模型构建。这个模型巧妙融合了DeepSeek强大的逻辑推理能力和Qwen成熟的…...
别再只会‘永不在此停止’了!实战绕过网站JS混淆与内存爆破的三种硬核方法
实战突破:三种硬核方法破解JS混淆与内存爆破 打开开发者工具的那一刻,页面突然卡死,控制台不断弹出debugger断点——这可能是每个爬虫工程师都经历过的噩梦。当简单的"永不在此停止"失效时,我们需要更高级的技术手段来应…...
Spoon与Gradle插件集成:现代化Android项目的最佳实践指南 [特殊字符]
Spoon与Gradle插件集成:现代化Android项目的最佳实践指南 🚀 【免费下载链接】spoon Distributing instrumentation tests to all your Androids. 项目地址: https://gitcode.com/gh_mirrors/sp/spoon Spoon是一个强大的Android测试分发工具&…...
万象熔炉 | Anything XL多风格尝试:动漫/写实/赛博朋克提示词模板库
万象熔炉 | Anything XL多风格尝试:动漫/写实/赛博朋克提示词模板库 1. 工具简介 万象熔炉 | Anything XL 是一款基于 Stable Diffusion XL 框架开发的本地图像生成工具。它最大的特点是支持直接加载 safetensors 单文件权重,无需复杂的配置和权重拆分…...
从零开始:在VS2019中用C++/CLI实现WinForm拖拽式界面设计
从零开始:在VS2019中用C/CLI实现WinForm拖拽式界面设计 当开发者需要在C项目中快速构建图形用户界面时,WinForm提供了一种比传统Win32 API更高效的解决方案。本文将详细介绍如何在Visual Studio 2019环境下,利用C/CLI技术实现类似C#的拖拽式W…...
