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
- 在这个例子中,我们使用 lambda 函数定义了一个函数 f,它接受两个参数 x 和 y,并返回它们的和。我们将 lambda 函数赋值给变量 f,然后调用 f 函数并传递参数 1 和 2,输出结果为 3。
- 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方式请求网页,requests库中相应的方法就是get方法。 import requestsr requests.get(https://www.baidu.com/) print(type(r)) # <class requests.models.Response> 响…...
鱼塘钓鱼(多路归并)
有 N 个鱼塘排成一排,每个鱼塘中有一定数量的鱼,例如:N5 时,如下表: 鱼塘编号12345第1分钟能钓到的鱼的数量 (1…1000)101420169每钓鱼1分钟钓鱼数的减少量(1…100)24653当前鱼塘到…...
java每日一题——买啤酒(递归经典问题)
前言: 非常喜欢的一道题,经典中的经典。打好基础,daydayup!!!啤酒问题:一瓶啤酒2元,4个盖子可以换一瓶,2个空瓶可以换一瓶,请问10元可以喝几瓶 题目如下: 啤酒问题:一瓶…...
最近接到一个大项目,给公司设计抢商品代金劵业务
我们公司是做汽车金融方面的工作,在业内还挺大。目前单量来源于2,3线城市,随着大环境越老越差位了吸引他们, 公司决定给全国的客户,销售等发一些商品 1.总体学习了京东开源秒杀系统设计思路和方案。 我们公司决定进行…...
防火墙(讲解)
目录 1.防火墙是什么? 2.防火墙设备 3.防火墙功能 1)出色的控制能力,过滤掉不安全服务 2)过滤非法用户和访问特殊站点 3)它能够对网络存取和访问进行监控审计 4.防火墙的局限 (1)防火墙有可能是可以绕过的 (2)防火墙不能防止内部出卖性攻击或者内部误操作…...
Python之装饰器-带参装饰器
Python之装饰器-带参装饰器 带参装饰器 之后不是一个单独的标识符,是一个函数调用函数调用的返回值又是一个函数,此函数是一个无参装饰器带参装饰器,可以有任意个参数 func()func(1)func(1, 2) def add(x, y):"""函数说明&…...
抖音IP属地怎么更改
抖音是一个非常受欢迎的短视频平台,吸引了无数用户在上面分享自己的生活和才艺。然而,随着快手的火爆,一些用户开始担心自己的IP地址会被他人获取,引起个人隐私风险。那么,抖音用户又该如何更改到别的地方呢࿱…...
Flutter 全局控制底部导航栏和自定义导航栏的方法
1. 介绍 导航栏在移动应用中扮演着至关重要的角色,它是用户与应用之间进行导航和交互的核心组件之一。无论是简单的页面切换,还是复杂的应用导航,导航栏都能够帮助用户快速找到所需内容,提升用户体验和应用的易用性。 在移动应用…...
检索增强生成(RAG)技术:实现流程、作用及应用案例
一. RAG简介 在自然语言处理(NLP)领域中,检索增强生成(Retrieval-Augmented Generation, RAG)技术巧妙地结合了信息检索与神经网络生成模型的力量,通过在生成过程中引入相关的外部信息,实现了在…...
Ubuntu安装和使用
Ubuntu 安装和配置 修改下载源 打开软件与更新, 选择其它站点, 选择中国, 选择阿里云源 谷歌中文输入法配置 Ctrl Alt T打开终端, 执行下述命令下fcitx框架 输入密码进行安装 sudo apt-get install -y fcitx-googlepinyinWin呼出菜单, 选择语言支持, 第一次打开会显示语言…...
【Unity】Stream最好用的Selfhost开源轻量服务
【背景】 有好几种场景的投屏或者远控应用希望实现,无论用哪种方式,都绕不开如何构建服务这一关。 【分析】 外网有很多直接付费使用的信令传输类型或是提供流服务的服务器,但我的目标场景是断绝外网的局域网,而且付费也总觉得…...
Web 常见的攻击方式有哪些?
常见的 Web 攻击方式有以下几种: 跨站脚本攻击(XSS 攻击) 跨站请求伪造(XSRF 攻击) SQL 注入 XSS 攻击 MDN 定义如下: 跨站脚本攻击(Cross-site scripting,XSS)是一…...
Rancher(v2.6.3)——Rancher部署Redis(单机版)
Rancher部署Redis详细说明文档]: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:如果觉得作者写的还行,能够满足您的需求&#…...
stm32-模拟数字转化器ADC
接线图: #include "stm32f10x.h" // Device header//1: 开启RCC时钟,包括ADC和GPIO的时钟//2:配置GPIO将GPIO配置为模拟输入模式//3:配置多路开关将左边的通道接入到规则组中//4:配置ADC转…...
[Repo Git] manifests的写法
manifests是个啥 在Repo中manifests描述了Repo客户端的结构,也就是可以从manifests中知道各个模块的代码应该从代码管理仓库当中哪个位置去获取。 manifests的基本结构是一个Git存储库,在顶层目录中持有一个default.xml文件。 由于m…...
位置编码与长度外推
位置编码 位置编码从前到后包括:绝对位置编码、余弦位置编码、旋转位置编码、ALiBi相对位置编码。 1 绝对位置编码(Absolute Positional Encoding) 应用的模型:BERT、GPT等Transformer基础模型广泛使用绝对位置编码来处理序列数据。 算法思想:绝对位置编码通过为序列中的…...
Linux信号补充——信号发送和保存
三、信号的发送与保存 3.1信号的发送 必须有操作系统来保存信号,因为他是管理者; 信号给进程的task_struct发送信号,在task_struct中维护了一个整数signal有0-31位,共32个bit位;对于信号的管理使用的是位图结…...
Vue3 中应该使用 Ref 还是 Reactive?
一、引言 在Vue 3中,构建响应式数据结构是构建用户界面和交互体验的核心部分。而在创建这些响应式数据时,我们有两个主要工具:reactive和ref。选择使用哪一个,实际上取决于你的数据结构和访问需求。 reactive主要用于处理复杂的数…...
红外相机和RGB相机标定:实现两种模态数据融合
1. 前期准备 RGB相机:森云智能SG2-IMX390,1个红外相机:艾睿光电IR-Pilot 640X-32G,1个红外标定板:https://item.taobao.com/item.htm?_ujp3fdd12b99&id644506141871&spma1z09.2.0.0.5f822e8dKrxxYI 2.操作步…...
AI 赋能自动化测试实战:从用例生成到 CI/CD 全流程落地
文章目录一、前言二、AI 赋能自动化测试的 5 大核心能力1. 智能测试用例生成2. 智能元素定位与脚本自愈3. 智能执行与异常自适应4. 智能缺陷检测与根因定位5. 测试用例库智能维护三、落地路径:0 到 1 搭建 AI 自动化测试体系阶段 1:工具选型与环境搭建&a…...
生成式推荐GR4AD
prompt 快手《Generative Recommendation for Large-Scale Advertising》值得阅读,生成式推荐这事 这两年聊的人很多,真能在大规模系统里全量落地的,基本没有。 这次快手团队把生成式推荐真正搬进大规模广告系统,是国内生成…...
XPT2046触摸驱动设计与车载嵌入式集成实践
1. XPT2046 触摸控制器驱动技术解析与嵌入式集成实践XPT2046 是一款广泛应用于嵌入式人机交互系统的 12 位逐次逼近型(SAR)模数转换器(ADC),专为四线/五线电阻式触摸屏设计。其核心功能并非独立显示驱动,而…...
精准控制:OpenClaw限制Qwen3.5-9B生成内容的3层过滤
精准控制:OpenClaw限制Qwen3.5-9B生成内容的3层过滤 1. 为什么需要内容安全过滤 去年我在用OpenClaw自动处理客户反馈邮件时,曾遇到一个尴尬场景——AI助手在回复中引用了某敏感行业术语,导致整批邮件需要人工召回。这次教训让我意识到&…...
从零搭建一个智能客服问答引擎:基于T5模型与PyTorch的完整项目实战
从零搭建智能客服问答引擎:基于T5模型与PyTorch的工业级实践 当企业客服系统每天需要处理数千条重复性问题时,人工坐席的效率瓶颈就会凸显。去年为某电商平台部署智能客服系统的经历让我深刻体会到:一个能理解"我的快递为什么三天没更新…...
终极指南:如何5分钟免费安装Fooocus AI图像生成软件
终极指南:如何5分钟免费安装Fooocus AI图像生成软件 【免费下载链接】Fooocus Focus on prompting and generating 项目地址: https://gitcode.com/GitHub_Trending/fo/Fooocus Fooocus是一款专注于提示词和图像生成的AI图像生成软件,它重新定义了…...
【花雕动手做】ESP32-S3 + MimiClaw 实战:通过飞书自然语言指令控制板载 WS2812 彩灯
【花雕动手做】嵌入式 AI Agent 实战:MimiClaw ESP32-S3 接入飞书,远程控制板载 RGB 全彩灯效 ——从源码修改到飞书指令,手把手打造一个能“听懂颜色话”的嵌入式 AI 智能体 一、引言:当“养龙虾”热潮遇到嵌入式 AI 2026 年开春…...
Repomix性能基准测试:不同规模代码库表现终极指南
Repomix性能基准测试:不同规模代码库表现终极指南 【免费下载链接】repomix 📦 Repomix is a powerful tool that packs your entire repository into a single, AI-friendly file. Perfect for when you need to feed your codebase to Large Language …...
16.2【保姆级教程】 C语言八进制+十六进制保姆级详解 _ 底层开发必吃透
🔥C语言八进制十六进制保姆级详解 | 底层开发必吃透📢 关注博主不迷路!全网最细C语言八进制、十六进制教程,从定义到实操、从转换到应用,新手零门槛上手,底层开发/面试必看!在C语言底层开发中&a…...
用Notepad++打开PLY文件:手把手教你读懂三维点云与网格数据的‘源代码’
用Notepad打开PLY文件:手把手教你读懂三维点云与网格数据的‘源代码’ 当你第一次拿到一个PLY文件时,可能会感到困惑——这个看似普通的文本文件,如何承载复杂的三维世界?就像程序员通过阅读源代码理解软件逻辑一样,我…...
