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

20.Python从入门到精通—参数 位置参数 关键字参数 默认参数 匿名函数 return 语句 强制位置参数

20.从入门到精通:参数 位置参数 关键字参数 默认参数 匿名函数 return 语句 强制位置参数

    • 参数
      • 位置参数
      • 关键字参数
      • 默认参数
    • 匿名函数
    • return 语句
    • 强制位置参数

参数

在Python中,函数可以接受任意数量的参数,包括位置参数、关键字参数和默认参数。以下是这些参数类型的详细介绍:

位置参数

位置参数是最常见的参数类型,它们按照定义的顺序传递给函数。例如,下面的函数接受两个位置参数:

def add_numbers(x, y):return x + y

调用这个函数时,必须按照定义的顺序传递两个参数:

result = add_numbers(1, 2)
print(result)  # 输出 3

关键字参数

关键字参数是指在调用函数时,使用参数名来指定参数的值。例如,下面的函数接受两个关键字参数:

def greet(name, greeting):print(f"{greeting}, {name}!")

调用这个函数时,可以使用参数名来指定参数的值:

greet(name="Alice", greeting="Hello")  # 输出 "Hello, Alice!"

关键字参数可以使函数调用更加清晰和易于理解,尤其是在函数接受多个参数时。

默认参数

默认参数是指在定义函数时,为参数指定一个默认值。如果调用函数时没有为这个参数传递值,则使用默认值。例如,下面的函数接受一个默认参数:

def greet(name, greeting="Hello"):print(f"{greeting}, {name}!")

调用这个函数时,可以只传递一个参数,而使用默认值来填充另一个参数:

greet("Alice")  # 输出 "Hello, Alice!"
greet("Bob", "Hi")  # 输出 "Hi, Bob!"

默认参数可以使函数调用更加简洁和易于使用,尤其是在函数的某些参数经常使用相同的值时。
以上是Python中函数参数的基本介绍,掌握函数参数的使用方法可以使我们编写更加灵活和高效的代码。

匿名函数

在 Python 中,匿名函数又称为 lambda 函数,是一种简单的函数定义方式,可以在一行代码中定义函数。lambda 函数的语法如下:

lambda arguments: expression

其中,arguments 是函数的参数列表,用逗号分隔;expression 是函数的返回值表达式。
下面是一个简单的 lambda 函数示例:

f = lambda x, y: x + y
print(f(1, 2))  # 输出 3
  1. 在这个例子中,我们使用 lambda 函数定义了一个函数 f,它接受两个参数 x 和 y,并返回它们的和。我们将 lambda 函数赋值给变量 f,然后调用 f 函数并传递参数 1 和 2,输出结果为 3。
  2. lambda 函数通常用于需要定义简单函数的场合,例如在函数中需要传递一个函数作为参数。

下面是一个使用 lambda 函数作为参数的示例:

numbers = [1, 2, 3, 4, 5]
squares = map(lambda x: x ** 2, numbers)
print(list(squares))  # 输出 [1, 4, 9, 16, 25]

在这个例子中,我们使用 map() 函数将列表 numbers 中的每个元素求平方,使用 lambda 函数 lambda x: x **
2 定义了一个简单的平方函数。map() 函数将 lambda 函数作为第一个参数,将列表 numbers
作为第二个参数,并返回一个可迭代对象,我们使用 list() 函数将其转换为列表并输出结果。

需要注意的是,lambda 函数通常用于定义简单的函数逻辑,如果函数逻辑比较复杂,建议使用普通函数来定义。

return 语句

在Python中,return语句用于从函数中返回一个值,并结束函数的执行。以下是一个示例,展示如何使用return语句从函数中返回一个值:

def add_numbers(x, y):result = x + yreturn resultsum = add_numbers(1, 2)
print(sum)  # 输出 3

在这个示例中,我们定义了一个名为add_numbers()的函数,它接受两个参数x和y,并计算它们的和。在函数内部,我们使用return语句返回计算结果result。在调用函数时,我们将返回的值赋给变量sum,并使用print()函数将其打印出来。

return语句可以帮助我们在函数内部计算出结果并将其返回给调用者。这使得函数可以在不同的上下文中重复使用,从而提高代码的复用性和可维护性。

强制位置参数

在 Python 中,可以使用 * 来强制位置参数,即在函数定义时, 后面的参数必须使用位置参数传递,不能使用关键字参数传递。下面是一个示例:*

def my_func(a, b, *, c, d):print(a, b, c, d)my_func(1, 2, c=3, d=4)  # 输出 1 2 3 4
my_func(1, 2, 3, 4)  # 报错:TypeError: my_func() takes 2 positional arguments but 4 were given

在上面的示例中,我们定义了一个函数 my_func,它接受两个位置参数 a 和 b,以及两个强制关键字参数 c 和 d。在调用函数时,我们可以使用关键字参数传递 c 和 d,也可以使用位置参数传递 a 和 b,但是不能同时使用位置参数和关键字参数传递 c和 d,否则会报错。

需要注意的是, 后面的参数必须使用关键字参数传递,否则会报错。例如:*

my_func(1, 2, 3, d=4)  # 报错:TypeError: my_func() takes 2 positional arguments but 3 positional arguments (and 1 keyword-only argument) were given

在这个示例中,我们使用位置参数传递了 c 的值,但是没有使用关键字参数传递,因此会报错。

相关文章:

20.Python从入门到精通—参数 位置参数 关键字参数 默认参数 匿名函数 return 语句 强制位置参数

20.从入门到精通:参数 位置参数 关键字参数 默认参数 匿名函数 return 语句 强制位置参数 参数位置参数关键字参数默认参数 匿名函数return 语句强制位置参数 参数 在Python中,函数可以接受任意数量的参数,包括位置参数、关键字参数和默认参数。以下是这…...

Python爬虫之requests库

1、准备工作 pip install requests 2、实例 urllib库中的urlopen方法实际上就是以GET方式请求网页&#xff0c;requests库中相应的方法就是get方法。 import requestsr requests.get(https://www.baidu.com/) print(type(r)) # <class requests.models.Response> 响…...

鱼塘钓鱼(多路归并)

有 N 个鱼塘排成一排&#xff0c;每个鱼塘中有一定数量的鱼&#xff0c;例如&#xff1a;N5 时&#xff0c;如下表&#xff1a; 鱼塘编号12345第1分钟能钓到的鱼的数量 &#xff08;1…1000&#xff09;101420169每钓鱼1分钟钓鱼数的减少量&#xff08;1…100)24653当前鱼塘到…...

java每日一题——买啤酒(递归经典问题)

前言&#xff1a; 非常喜欢的一道题&#xff0c;经典中的经典。打好基础&#xff0c;daydayup!!!啤酒问题&#xff1a;一瓶啤酒2元&#xff0c;4个盖子可以换一瓶&#xff0c;2个空瓶可以换一瓶&#xff0c;请问10元可以喝几瓶 题目如下&#xff1a; 啤酒问题&#xff1a;一瓶…...

最近接到一个大项目,给公司设计抢商品代金劵业务

我们公司是做汽车金融方面的工作&#xff0c;在业内还挺大。目前单量来源于2&#xff0c;3线城市&#xff0c;随着大环境越老越差位了吸引他们&#xff0c; 公司决定给全国的客户&#xff0c;销售等发一些商品 1.总体学习了京东开源秒杀系统设计思路和方案。 我们公司决定进行…...

防火墙(讲解)

目录 1.防火墙是什么? 2.防火墙设备 3.防火墙功能 1)出色的控制能力&#xff0c;过滤掉不安全服务 2)过滤非法用户和访问特殊站点 3)它能够对网络存取和访问进行监控审计 4.防火墙的局限 (1)防火墙有可能是可以绕过的 (2)防火墙不能防止内部出卖性攻击或者内部误操作…...

Python之装饰器-带参装饰器

Python之装饰器-带参装饰器 带参装饰器 之后不是一个单独的标识符&#xff0c;是一个函数调用函数调用的返回值又是一个函数&#xff0c;此函数是一个无参装饰器带参装饰器&#xff0c;可以有任意个参数 func()func(1)func(1, 2) def add(x, y):"""函数说明&…...

抖音IP属地怎么更改

抖音是一个非常受欢迎的短视频平台&#xff0c;吸引了无数用户在上面分享自己的生活和才艺。然而&#xff0c;随着快手的火爆&#xff0c;一些用户开始担心自己的IP地址会被他人获取&#xff0c;引起个人隐私风险。那么&#xff0c;抖音用户又该如何更改到别的地方呢&#xff1…...

Flutter 全局控制底部导航栏和自定义导航栏的方法

1. 介绍 导航栏在移动应用中扮演着至关重要的角色&#xff0c;它是用户与应用之间进行导航和交互的核心组件之一。无论是简单的页面切换&#xff0c;还是复杂的应用导航&#xff0c;导航栏都能够帮助用户快速找到所需内容&#xff0c;提升用户体验和应用的易用性。 在移动应用…...

检索增强生成(RAG)技术:实现流程、作用及应用案例

一. RAG简介 在自然语言处理&#xff08;NLP&#xff09;领域中&#xff0c;检索增强生成&#xff08;Retrieval-Augmented Generation, RAG&#xff09;技术巧妙地结合了信息检索与神经网络生成模型的力量&#xff0c;通过在生成过程中引入相关的外部信息&#xff0c;实现了在…...

Ubuntu安装和使用

Ubuntu 安装和配置 修改下载源 打开软件与更新, 选择其它站点, 选择中国, 选择阿里云源 谷歌中文输入法配置 Ctrl Alt T打开终端, 执行下述命令下fcitx框架 输入密码进行安装 sudo apt-get install -y fcitx-googlepinyinWin呼出菜单, 选择语言支持, 第一次打开会显示语言…...

【Unity】Stream最好用的Selfhost开源轻量服务

【背景】 有好几种场景的投屏或者远控应用希望实现&#xff0c;无论用哪种方式&#xff0c;都绕不开如何构建服务这一关。 【分析】 外网有很多直接付费使用的信令传输类型或是提供流服务的服务器&#xff0c;但我的目标场景是断绝外网的局域网&#xff0c;而且付费也总觉得…...

Web 常见的攻击方式有哪些?

常见的 Web 攻击方式有以下几种&#xff1a; 跨站脚本攻击&#xff08;XSS 攻击&#xff09; 跨站请求伪造&#xff08;XSRF 攻击&#xff09; SQL 注入 XSS 攻击 MDN 定义如下&#xff1a; 跨站脚本攻击&#xff08;Cross-site scripting&#xff0c;XSS&#xff09;是一…...

Rancher(v2.6.3)——Rancher部署Redis(单机版)

Rancher部署Redis详细说明文档]&#xff1a;https://gitee.com/WilliamWangmy/snail-knowledge/blob/master/Rancher/Rancher%E4%BD%BF%E7%94%A8%E6%96%87%E6%A1%A3.md#6rancher%E9%83%A8%E7%BD%B2redis ps&#xff1a;如果觉得作者写的还行&#xff0c;能够满足您的需求&#…...

stm32-模拟数字转化器ADC

接线图&#xff1a; #include "stm32f10x.h" // Device header//1: 开启RCC时钟&#xff0c;包括ADC和GPIO的时钟//2&#xff1a;配置GPIO将GPIO配置为模拟输入模式//3&#xff1a;配置多路开关将左边的通道接入到规则组中//4&#xff1a;配置ADC转…...

[Repo Git] manifests的写法

​manifests​​是个啥 在Repo​中manifests​描述了Repo客户端的结构&#xff0c;也就是可以从manifests​中知道各个模块的代码应该从代码管理仓库当中哪个位置去获取。 ​manifests​的基本结构是一个Git存储库&#xff0c;在顶层目录中持有一个default.xml​文件。 由于m…...

位置编码与长度外推

位置编码 位置编码从前到后包括:绝对位置编码、余弦位置编码、旋转位置编码、ALiBi相对位置编码。 1 绝对位置编码(Absolute Positional Encoding) 应用的模型:BERT、GPT等Transformer基础模型广泛使用绝对位置编码来处理序列数据。 算法思想:绝对位置编码通过为序列中的…...

Linux信号补充——信号发送和保存

三、信号的发送与保存 3.1信号的发送 ​ 必须有操作系统来保存信号&#xff0c;因为他是管理者&#xff1b; ​ 信号给进程的task_struct发送信号&#xff0c;在task_struct中维护了一个整数signal有0-31位&#xff0c;共32个bit位&#xff1b;对于信号的管理使用的是位图结…...

Vue3 中应该使用 Ref 还是 Reactive?

一、引言 在Vue 3中&#xff0c;构建响应式数据结构是构建用户界面和交互体验的核心部分。而在创建这些响应式数据时&#xff0c;我们有两个主要工具&#xff1a;reactive和ref。选择使用哪一个&#xff0c;实际上取决于你的数据结构和访问需求。 reactive主要用于处理复杂的数…...

红外相机和RGB相机标定:实现两种模态数据融合

1. 前期准备 RGB相机&#xff1a;森云智能SG2-IMX390&#xff0c;1个红外相机&#xff1a;艾睿光电IR-Pilot 640X-32G&#xff0c;1个红外标定板&#xff1a;https://item.taobao.com/item.htm?_ujp3fdd12b99&id644506141871&spma1z09.2.0.0.5f822e8dKrxxYI 2.操作步…...

OpenClaw故障模拟:gemma-3-12b-it在断网环境下的降级处理方案

OpenClaw故障模拟&#xff1a;gemma-3-12b-it在断网环境下的降级处理方案 1. 为什么需要关注断网场景下的容灾设计 上周我在调试一个基于OpenClaw的自动化日报生成系统时&#xff0c;遇到了一个意外情况&#xff1a;网络突然中断导致整个流程卡死。这让我意识到&#xff0c;在…...

【需求改变与测试如何】

需求一旦修改&#xff0c;测试该如何进行呢&#xff1f; 最近面临的项目&#xff0c;经过很多次需求更改或者是前期没有需求&#xff0c;实际操作起来&#xff0c;让人很是头疼&#xff0c;恰到也看到大家也有着相同的讨论。 来源于微信公众号&#xff1a;测试论道学习&#x…...

音谷 - AI 多角色多情绪配音平台 github开源的多角色、多情绪 AI 配音生成平台,支持小说、剧本、视频等内容的自动配音与导出。

简介说明 音谷 - AI 多角色多情绪配音平台 github开源的多角色、多情绪 AI 配音生成平台&#xff0c;支持小说、剧本、视频等内容的自动配音与导出。 定位&#xff1a;为小说、剧本、视频等内容提供多角色、多情绪的 AI 语音合成与配音服务 主要功能&#xff1a; 小说 / 剧本…...

Docker-compose一键部署OnlyOffice实战指南

1. 为什么选择Docker-compose部署OnlyOffice&#xff1f; 如果你正在寻找一个开箱即用的文档协作解决方案&#xff0c;OnlyOffice绝对是当前最值得考虑的选择之一。它提供了媲美微软Office的编辑体验&#xff0c;同时支持多人实时协作、版本控制等企业级功能。而使用Docker-com…...

广西大学电气专业课设资料包|短路计算课程设计全套(含源码+实验报告+理论PPT)

温馨提示&#xff1a;文末有联系方式广西大学电气专业课程设计资料合集 专注服务广大学生&#xff0c;精心整理广西大学电气工程及其自动化专业核心课设&#xff0c;覆盖课程设计全流程需求。短路电流计算课程设计全套电子资料 包含完整可编译运行的软件程序&#xff08;支持主…...

Oh-My-Posh 多会话管理终极指南:在不同终端中保持一致的完美体验

Oh-My-Posh 多会话管理终极指南&#xff1a;在不同终端中保持一致的完美体验 【免费下载链接】oh-my-posh2 A prompt theming engine for Powershell 项目地址: https://gitcode.com/gh_mirrors/oh/oh-my-posh2 Oh-My-Posh 是一款强大的 PowerShell 提示符主题引擎&…...

DeepAnalyze参数详解:Llama3:8b模型在信息提炼任务中的Prompt工程与输出结构优化

DeepAnalyze参数详解&#xff1a;Llama3:8b模型在信息提炼任务中的Prompt工程与输出结构优化 1. 项目概述&#xff1a;深度文本分析引擎 DeepAnalyze是一个基于Ollama框架构建的本地化大模型应用&#xff0c;专门用于深度文本分析任务。这个引擎的核心功能是模仿专业文本分析…...

STM32实战:S曲线加减速算法在步进电机控制中的实现与调优

1. 为什么需要S曲线加减速控制 我第一次用步进电机做3D打印机时&#xff0c;电机启动瞬间总会发出刺耳的"咔咔"声&#xff0c;打印头也会轻微抖动。后来发现这是典型的梯形加减速带来的冲击问题——速度突变导致电机扭矩不足。而S曲线加减速就像老司机踩油门&#x…...

ARM Cortex-M开发避坑指南:DMB、DSB、ISB这三个内存屏障指令到底该怎么用?

ARM Cortex-M内存屏障实战手册&#xff1a;DMB/DSB/ISB的精准选择与避坑策略 当你在调试一个间歇性出现的DMA传输错误时&#xff0c;是否曾怀疑过是内存访问顺序的问题&#xff1f;在RTOS任务切换后寄存器值莫名其妙改变的场景中&#xff0c;是否考虑过指令流水线的影响&#x…...

Docker下XTDrone仿真平台搭建全攻略(ROS-Noetic版,含常见错误解决方案)

Docker下XTDrone仿真平台搭建全攻略&#xff08;ROS-Noetic版&#xff09; 在无人机开发领域&#xff0c;仿真测试是验证算法、降低硬件损耗的关键环节。XTDrone作为国内开发者广泛使用的开源仿真平台&#xff0c;结合ROS和Gazebo提供了完整的无人机仿真解决方案。本文将带你从…...