当前位置: 首页 > news >正文

Python从入门到精通七:Python函数进阶

函数多返回值

学习目标:

知道函数如何返回多个返回值

问: 如果一个函数如些两个return (如下所示),程序如何执行?

答:只执行了第一个return,原因是因为return可以退出当前函数,导致return下方的代码不执行

多个返回值

如果一个函数要有多个返回值,该如何书写代码?

按照返回值的顺序,写对应顺序的多个变量接收即可

变量之间用逗号隔开

支持不同类型的数据return

函数多种传参方式

学习目标:

  • 掌握位置参数
  • 掌握关键字参数
  • 掌握不定长参数
  • 掌握缺省参数
     

函数参数种类

使用方式上的不同, 函数有4中常见参数使用方式:

  • 位置参数
  • 关键字参数
  • 缺省参数
  • 不定长参数

位置参数

位置参数:调用函数时根据函数定义的参数位置来传递参数

注意:

      传递的参数和定义的参数的顺序及个数必须一致

关键字参数

关键字参数:函数调用时通过“键=值”形式传递参数.

作用: 可以让函数更加清晰、容易使用,同时也清除了参数的顺序需求.

注意:

       函数调用时,如果有位置参数时,位置参数必须在关键字参数的前面,但关键字参数之间不存在先后顺序

缺省参数

缺省参数:缺省参数也叫默认参数,用于定义函数,为参数提供默认值,调用函数时可不传该默认参数的值(注意:所有位置参数必须出现在默认参数前,包括函数定义和调用).

作用: 当调用函数时没有传递参数, 就会使用默认是用缺省参数对应的值.

注意:

       函数调用时,如果为缺省参数传值则修改默认参数值, 否则使用这个默认值

不定长参数

不定长参数:不定长参数也叫可变参数. 用于不确定调用的时候会传递多少个参数(不传参也可以)的场景.

作用: 当调用函数时不确定参数个数时, 可以使用不定长参数

不定长参数的类型:

     ①位置传递

     ②关键字传递

位置传递

注意:

      传进的所有参数都会被args变量收集,它会根据传进参数的位置合并为一个元组(tuple),args是元组类型,这就是位置传递

关键字传递

注意:

      参数是“键=值”形式的形式的情况下, 所有的“键=值”都会被kwargs接受, 同时会根据“键=值”组成字典.

总结:

1. 掌握位置参数

     ·根据参数位置来传递参数

2. 掌握关键字参数

     ·通过“键=值”形式传递参数,可以不限参数顺序

      ·可以和位置参数混用,位置参数需在前

3. 掌握缺省参数

     ·不传递参数值时会使用默认的参数值

      ·默认值的参数必须定义在最后

4. 掌握不定长参数

     · 位置不定长传递以*号标记一个形式参数,以元组的形式接受参数,形式参数一般命名为args

      · 关键字不定长传递以**号标记一个形式参数,以字典的形式接受参数,形式参数一般命名为kwargs

匿名函数

函数作为参数传递

在前面的函数学习中,我们一直使用的函数,都是接受数据作为参数传入:

  • 数字
  • 字符串
  • 字典、列表、元组等

其实,我们学习的函数本身,也可以作为参数传入另一个函数内。

如下代码:

函数compute,作为参数,传入了test_func函数中使用。

  • test_func需要一个函数作为参数传入,这个函数需要接收2个数字进行计算,计算逻辑由这个被传入函数决定
  • compute函数接收2个数字对其进行计算,compute函数作为参数,传递给了test_func函数使用
  • 最终,在test_func函数内部,由传入的compute函数,完成了对数字的计算操作

所以,这是一种,计算逻辑的传递,而非数据的传递。

就像上述代码那样,不仅仅是相加,相见、相除、等任何逻辑都可以自行定义并作为函数传入。

总结:

1. 函数本身是可以作为参数,传入另一个函数中进行使用的。

2. 将函数传入的作用在于:传入计算逻辑,而非传入数据。

lambda匿名函数

函数的定义中

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

有名称的函数,可以基于名称重复使用。

无名称的匿名函数,只可临时使用一次。

匿名函数定义语法:

  • lambda 是关键字,表示定义匿名函数
  • 传入参数表示匿名函数的形式参数,如:x, y 表示接收2个形式参数
  • 函数体,就是函数的执行逻辑,要注意:只能写一行,无法写多行代码

如下图代码,我们可以:

通过def关键字,定义一个函数,并传入,如下图:

也可以通过lambda关键字,传入一个一次性使用的lambda匿名函数

使用def和使用lambda,定义的函数功能完全一致,只是lambda关键字定义的函数是匿名的,无法二次使用

总结:

1. 匿名函数使用lambda关键字进行定义

2. 定义语法:

3. 注意事项:

  • 匿名函数用于临时构建一个函数,只用一次的场景
  • 匿名函数的定义中,函数体只能写一行代码,如果函数体要写多行代码,不可用lambda匿名函数,应使用def定义带名函数
     

相关文章:

Python从入门到精通七:Python函数进阶

函数多返回值 学习目标: 知道函数如何返回多个返回值 问: 如果一个函数如些两个return (如下所示),程序如何执行? 答:只执行了第一个return,原因是因为return可以退出当前函数,导致return下方的代码不执…...

uniapp踩坑之项目:使用过滤器将时间格式化为特定格式

利用filters过滤器对数据直接进行格式化&#xff0c;注意&#xff1a;与method、onLoad、data同层级 <template><div><!-- orderInfo.time的数据为&#xff1a;2023-12-12 12:10:23 --><p>{{ orderInfo.time | formatDate }}</p> <!-- 2023-1…...

webpack学习-2.管理资源

webpack学习-2.管理资源 1.这章要干嘛2.加载css注意顺序&#xff01; 3.总结 1.这章要干嘛 管理资源&#xff0c;什么意思呢&#xff1f;管理什么资源&#xff1f;项目中经常会 导入各种各样的css文件&#xff0c;图片文件&#xff0c;字体文件&#xff0c;数据文件等等&#…...

658. 找到 K 个最接近的元素

658. 找到 K 个最接近的元素 Java代码&#xff1a;滑窗 class Solution {public List<Integer> findClosestElements(int[] arr, int k, int x) {List<Integer> list new ArrayList<>();for (int i 0; i < arr.length; i) {arr[i] arr[i] - x;}for(i…...

十二、MapReduce概述

1、MapReduce &#xff08;1&#xff09;采用框架 MapReduce是“分散——>汇总”模式的分布式计算框架&#xff0c;可供开发人员进行相应计算 &#xff08;2&#xff09;编程接口&#xff1a; ~Map ~Reduce 其中&#xff0c;Map功能接口提供了“分散”的功能&#xff…...

shell条件测试

目录 1.1.用途 1.2.基本语法 1.2.1.格式: 1.2.2.例 1.3 文件测试 1.4.整数测试 1.4.1.作用 1.4.2.操作符 1.4.3.示例&#xff1a; 1.5.逻辑操作符 1.5.1.符号 1.5.2.例&#xff1a; 1.6.命令分隔符 1.1.用途 为了能够正确处理Shell程序运行过程中遇到的各种情况&am…...

python在线读取传奇列表,并解析为需要的JSON格式

python在线读取传奇列表,并解析为需要的JSON格式,以下为传奇中使用的TXT列表格式, [Server] ; 使用“/”字符分开颜色,也可以不使用颜色,支持以前的旧格式,只有标题和服务器标题支持颜色 ; 标题/颜色代码(0-255)|服务器标题/颜色代码(0-255)|服务器名称|服务器IP|服务器端…...

【docker 】 安装docker(centOS7)

官网 docker官网 github源码 官网 在CentOS上安装Docker引擎 官网 在Debian上安装Docker引擎 官网 在 Fedora上安装Docker引擎 官网 在ubuntu上安装Docker引擎 官网 在RHEL (s390x)上安装Docker引擎 官网 在SLES上安装Docker引擎 最完善的资料都在官网。 卸载旧版本 …...

智能网联汽车场景数据图像标注要求及方法

智能网联汽车场景数据图像标注要求及方法 1 范围 本标准规定了智能网联汽车场景数据图像中交通参与者、交通信号灯、交通标志、交通标线、可行驶区域、光照条件、遮挡截断情况7类元素的标注要求及方法。 本标准适用于智能网联汽车图像数据标注。 2 规范性引…...

四. 基于环视Camera的BEV感知算法-BEVFormer

目标 前言0. 简述1. 算法动机&开创性思路2. 主体结构3. 损失函数4. 性能对比5. BEVFormerv2总结下载链接参考 前言 自动驾驶之心推出的《国内首个BVE感知全栈系列学习教程》&#xff0c;链接。记录下个人学习笔记&#xff0c;仅供自己参考 本次课程我们来学习下课程第四章—…...

gin投票系统3

对应视频v1版本 1.优化登陆接口 将同步改为异步 原login前端代码&#xff1a; <!doctype html> <html lang"en"> <head><meta charset"utf-8"><title>香香编程-投票项目</title> </head> <body> <m…...

windows如何解决端口冲突(实用篇)

在项目设计中&#xff0c;环境配置成功点击运行瞬间&#xff0c;一大堆红爆出&#xff0c;8080端口占用&#xff0c;这个是很烦人的。。。 解决方式&#xff1a; 笨方法&#xff1a;一、查看所有端口实用情况&#xff08;挨个扫&#xff09; 按住【WINR】快捷键打开运行输入…...

「PPT 下载」Google DevFest Keynote | 复杂的海外网络环境下,如何提升连接质量

&#xff08;全网都在找的《社交泛娱乐出海作战地图》&#xff0c;点击获取&#x1f446;&#xff09; 12 月 10 日&#xff0c;“Google DevFest 2023 上海站”大会如期在上海市东方万国宴会中心举办。延续过往的技术交流碰撞、前沿技术学习基调传统&#xff0c;本届大会聚焦行…...

Logstash输入Kafka输出Es配置

Logstash介绍 Logstash是一个开源的数据收集引擎&#xff0c;具有实时管道功能。它可以从各种数据源中动态地统一和标准化数据&#xff0c;并将其发送到你选择的目的地。Logstash的早期目标主要是用于收集日志&#xff0c;但现在的功能已经远远超出这个范围。任何事件类型都可…...

Bash脚本处理ogg、flac格式到mp3格式的批量转换

现在下载的许多音乐文件是flac和ogg格式的&#xff0c;QQ音乐上下载的就是这样的&#xff0c;这些文件尺寸比较大&#xff0c;在某些场合使用不便&#xff0c;比如在车机上播放还是mp3格式合适&#xff0c;音质这些在车机上播放足够了&#xff0c;要求不高。比如本人就喜欢下载…...

Android 依据Build相关信息判断机型

Android 依据Build相关信息判断机型 本文主要通过Build的相关信息获取机型,目前机型判断的较少,后续继续维护更新 public static String parseBuild() {StringBuilder sb new StringBuilder();String deriveFingerprint Build.FINGERPRINT;String manufacturer Build.MANU…...

2024年甘肃省职业院校技能大赛信息安全管理与评估赛项一阶段样题一

2024年甘肃省职业院校技能大赛高职学生组电子与信息大类信息安全管理与评估赛项样题一 竞赛需要完成三个阶段的任务&#xff0c;分别完成三个模块&#xff0c;总分共计 1000分。三个模块内容和分值分别是&#xff1a; 1.第一阶段&#xff1a;模块一 网络平台搭建与设备安全防…...

ARM:作业3

按键中断代码编写 代码: key_it.h #ifndef __KEY_IT_H__ #define __KEY_IT_H__#include "stm32mp1xx_gpio.h" #include "stm32mp1xx_exti.h" #include "stm32mp1xx_rcc.h" #include "stm32mp1xx_gic.h"void key1_it_config(); voi…...

基于OpenCV+CNN+IOT+微信小程序智能果实采摘指导系统——深度学习算法应用(含python、JS工程源码)+数据集+模型(二)

目录 前言总体设计系统整体结构图系统流程图 运行环境Python环境TensorFlow 环境Jupyter Notebook环境Pycharm 环境微信开发者工具OneNET云平台 相关其它博客工程源代码下载其它资料下载 前言 本项目基于Keras框架&#xff0c;引入CNN进行模型训练&#xff0c;采用Dropout梯度…...

*上位机的定义

上位机是指在分布式控制系统中&#xff0c;负责监控和控制下位机&#xff08;也称为远程终端设备&#xff09;的计算机或者计算机网络。它通常是一个高性能的计算设备&#xff0c;运行着特定的监控软件&#xff0c;用于实时监测、控制和管理下位机设备。 上位机负责与各个下位…...

NX浮动许可利用率低:软件许可浪费,高端设计团队解脱

我去年在XX公司遇到个事&#xff0c;设计团队的NX license用着用着突然卡住了&#xff0c;明明有二十多个电脑在用&#xff0c;License Manager显示只剩三个可用。当时我就懵了&#xff0c;这配置不是白搭了吗&#xff1f;后来查资料才明白&#xff0c;这是典型的浮动许可资源浪…...

Anubis质检报告XTR文件:从数据字段到质量评估的实战解析

1. XTR文件基础&#xff1a;GNSS质检报告的核心载体 第一次拿到Anubis生成的XTR文件时&#xff0c;我盯着满屏的缩写和数据愣了半天。这种看似晦涩的文本文件&#xff0c;实际上是GNSS数据质量的"体检报告单"。就像医院的血常规化验单需要专业解读一样&#xff0c;XT…...

别再只写assign了!用三种Verilog建模风格重构你的三人表决器(行为级/数据流/门级)

别再只写assign了&#xff01;用三种Verilog建模风格重构你的三人表决器 三人表决器是数字电路设计中的经典案例&#xff0c;它能直观展示不同抽象层次的Verilog建模风格如何影响代码质量与硬件实现。很多工程师习惯性地使用assign语句完成所有设计&#xff0c;却忽略了Verilo…...

从数据备份到模型部署:深入理解Numpy的.npy/.npz文件在机器学习流水线中的角色

从数据备份到模型部署&#xff1a;深入理解Numpy的.npy/.npz文件在机器学习流水线中的角色 在机器学习项目的完整生命周期中&#xff0c;数据的高效存储与快速读取往往是决定工程效率的关键因素之一。当我们谈论数据处理工具时&#xff0c;Numpy无疑是Python生态中不可忽视的核…...

法律文书分析系统接入 A-MEM 长程记忆

项目实训 | Vue3 FastAPI | NeurIPS 2025 A-MEM 复现与工程落地一、背景与动机 在法律文书智能分析系统的开发过程中&#xff0c;我们发现了一个核心痛点&#xff1a;AI助手没有"记忆"。 用户在第一轮对话里详细描述了案件事实——“我是原告张三&#xff0c;2024年…...

3分钟掌握MPC Video Renderer:免费开启Windows高清视频播放新体验

3分钟掌握MPC Video Renderer&#xff1a;免费开启Windows高清视频播放新体验 【免费下载链接】VideoRenderer Внешний видео-рендерер 项目地址: https://gitcode.com/gh_mirrors/vi/VideoRenderer 你是否厌倦了Windows系统上平淡无奇的视频播放效…...

CentOS 7.9上5分钟搞定openGauss极简版安装(附防火墙和权限避坑指南)

CentOS 7.9极速部署openGauss&#xff1a;5分钟实战与深度避坑手册 在数据库技术快速迭代的今天&#xff0c;openGauss作为企业级开源数据库的佼佼者&#xff0c;正受到越来越多开发者和运维团队的青睐。本文将带你在CentOS 7.9系统上&#xff0c;用最短时间完成openGauss极简版…...

别等 SQL 跑慢了再靠猜,NineData 怎样把问题一步步看清

SQL 变慢最怕的不是慢本身&#xff0c;而是大家一开始只能靠猜。明明语法没报错&#xff0c;业务一上线却卡住了&#xff1b;多了一个函数、少了一个索引&#xff0c;或者关联顺序不合适&#xff0c;就可能让数据库白白扫描一大堆数据。在很多团队里&#xff0c;这类问题最早往…...

LinkSwift:九大网盘直链下载的终极解决方案,快速获取真实下载地址

LinkSwift&#xff1a;九大网盘直链下载的终极解决方案&#xff0c;快速获取真实下载地址 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百度网盘 / 阿里云盘…...

别再死记公式了!用Cadence Virtuoso手把手仿真折叠Cascode运放的增益与带宽

折叠Cascode运放仿真实战&#xff1a;从理论到波形的完整验证指南 在模拟IC设计的海洋里&#xff0c;折叠Cascode运算放大器就像一艘兼具速度与稳定性的快艇——它能提供高增益、宽带宽和良好的输出摆幅。但当你从教科书走向Cadence Virtuoso的仿真界面时&#xff0c;是否经常遇…...