Python3 函数参数
前言
本文主要介绍python中的函数参数,主要内容包括形式参数与实际参数的概念、位置参数、关键字参数、默认参数、可变参数。
文章目录
- 前言
- 一、形式参数与实际参数的概念
- 二、位置参数(也叫必需参数)
- 三、关键字参数
- 四、默认参数
- 五、可变参数
- 1、第一种可变参数 ——单星号 *参数
- 2、第二种可变参数 —— 双星号 **参数
一、形式参数与实际参数的概念
形式参数为我们定义函数的时候再括号中定义的参数,我们在函数的内部会使用这个参数进行代码的编写,而实际参数为函数调用的时候传进来的参数,函数返回的结果是根据这个实际参数来代替形式参数。
def add_numbers(x, y): # 在这个函数中,x和y是形式参数,也就是在定义函数时使用的参数名total = x + yreturn totalresult = add_numbers(3, 5) # 在这里,3和5是实际参数,也就是在函数调用时传递给函数的值
print(result)
输出结果:
8
二、位置参数(也叫必需参数)
位置参数是指函数调用中传入的实际参数,按照从左到右的顺序赋值给形式参数,可以是在函数定义时指定参数名,也可以省略参数名,只有参数值。
def greet(name, age):print("你好,我叫", name, ",我今年", age, "岁了。")greet("林时小卡", 3)
输出结果:
你好,我叫 林时小卡 ,我今年 3 岁了。
注意:位置参数须以正确的顺序传入函数,调用时的数量必须和声明时的一样,否则会出现语法错误。
三、关键字参数
为了提高程序的可读性,在函数调用的时候还可以使用关键字参数调用,只需指定参数名即可。关键字参数是以“参数名=参数值”的形式指定的。
def greet(name,age): #这里的形式参数是 name, ageprint("你好,又见面了! 我叫", name, ",我今年", age, "岁了。")greet(age = 3,name ="林时小卡") #这里的实际参数是 age ,name
输出结果:
你好,又见面了! 我叫 林时小卡 ,我今年 3 岁了。
四、默认参数
当我们定义一个函数的时候,可以给函数的参数定义一个初始值,这样在我们调用函数的时候如果没有给出实际参数,那么函数会使用默认参数。
def greet(name,age = 3): #这里的形参 age定义了初始值为3print("你好,我叫", name, ",我今年", age, "岁了。")greet("林时小卡") #调用函数并没有给传入参数,所以使用默认值
输出结果:
你好,我叫 林时小卡 ,我今年 3 岁了。
注意: 一个函数中如果定义了多个参数,而且有默认参数值,那么默认参数值应该放在参数列表的最后,否则会报错。在python中, 默认参数后面不能再有非默认参数。
五、可变参数
在Python中函数的参数个数是可以变化的,也就是说参数的数量可以是不确定的,这种参数被称为可变参数。可变参数分为两种,一种是参数前加*,这种方式的可变参数在传递的时候是以元组的形式传递,一种是参数前加**,这种方式的可变参数在传递的时候以字典的形式传递。
1、第一种可变参数 ——单星号 *参数
在函数调用时传入了实际参数,它们被打包成一个 tuple,按照顺序赋值给可变形式参数
def sum(*nums):total = 0print(type(nums))for n in nums:total += nreturn totalprint(sum(1, 2,))
输出结果:
<class 'tuple'> #输出nums的类型为tuple
3
在函数调用时,我们传入了实际参数 1 和 2,它们被打包成一个 tuple,按照顺序赋值给可变形式参数 nums,total 初始值为 0,通过 for 循环累加后输出3。
2、第二种可变参数 —— 双星号 **参数
双星号 ** 后面的参数可以接受任何关键字参数,并将这些关键字参数打包成一个字典类型的对象。这个字典对象的键值对就是关键字参数名和对应的实际参数值。
def my_func(**kwargs):print(type(kwargs))print(kwargs)my_func(name='林时小卡', age=3)
输出结果:
<class 'dict'>
{'name': '林时小卡', 'age': 3}
注意:可变参数必须放在参数列表的最后面。如果函数需要接收任意数量的参数,并且还需要指定一些可变数量的参数,则应该使用先定义位置参数和关键字参数,然后再定义可变参数的方式。
相关文章:
Python3 函数参数
前言 本文主要介绍python中的函数参数,主要内容包括形式参数与实际参数的概念、位置参数、关键字参数、默认参数、可变参数。 文章目录 前言一、形式参数与实际参数的概念二、位置参数(也叫必需参数)三、关键字参数四、默认参数五、可变参数…...

精准检测,可燃气体报警系统的技术原理与特点
在现代化的工业生产与日常生活中,可燃气体泄露事故频发,给人们的生命和财产安全带来了严重威胁。 因此,可燃气体报警检测系统的应用变得尤为重要。它不仅能够实时监测环境中的可燃气体浓度,还能在发现异常情况时及时报警…...

6月2(信息差)
🌍特斯拉:Model3高性能版预计6月中旬开启首批交付 🎄微软对开源字体 Cascadia Code 进行重大更新 ✨天猫618加码引爆消费热潮 截至晚9点185个品牌成交破亿 1.瑞士清洁科技公司Librec开发废旧锂离子电池回收技术,可回收电池90%的…...

先锋文汇发稿技巧方法
v:yangwei013049 看到标题,有的同志也许会说,投稿就是把稿子发走就行了呗,这要讲究什么方法呢?其实,投稿里面也有学问。不会投稿,方法不当,往往得不到好的效果。 从我多年的实践和…...

无人机推流/RTMP视频推拉流EasyDSS无法卸载软件是什么原因?
视频推拉流/直播点播EasyDSS平台支持音视频采集、视频推拉流、播放H.265编码视频、存储、分发等视频能力服务,在应用场景中可实现视频直播、点播、转码、管理、录像、检索、时移回看等。此外,平台还支持用户自行上传视频文件,也可将上传的点播…...

QML信号连接到c++的槽函数(五)
文章目录 前言一、QML Signal and Handler Event System二、QML信号连接到c++的槽函数代码实例1. 创建一个QML 工程2. 用C++ 实现一个QML Types3. 代码实例4. 运行结果总结参考资料前言 本文主要介绍,如何将QML 中的信号连接到C++ 中的槽函数 软硬件环境: 硬件:PC 软件:wi…...

[Windows] 植物大战僵尸杂交版
游戏包含冒险模式、挑战模式、生存模式三种不同玩法。冒险模式主打关卡闯关,挑战模式则挑战特殊设计的关卡,生存模式结合无尽模式和特殊地图,各具特色。玩家可根据喜好自由选择模式,体验不同的游戏乐趣。快来尝试这款独特的pvz游戏…...
JVM之【GC-可达性分析算法】
在Java虚拟机(JVM)中,可达性分析算法(Reachability Analysis)用于垃圾收集,以确定哪些对象是“可达”的,即哪些对象仍然有用,哪些对象可以被回收。下面是对可达性分析算法及其底层实…...

【机器学习】——驱动智能制造的青春力量,优化生产、预见故障、提升质量
目录 一.优化生产流程 1.1 数据收集 1.2 数据预处理 1.3 模型训练 1.4 优化建议 1.5 示例代码 二.预测设备故障 2.1 数据收集 2.2 数据预处理 2.3 模型训练 2.4 故障预测 2.5 示例代码 三.提升产品质量 3.1 数据收集 3.2 数据预处理 3.3 模型训练 3.4 质量提升…...
Python实用代码片段分享(三)
在今天的博文中,我们将继续分享一些Python编程中非常实用的代码片段。这些代码片段将帮助你更高效地处理常见任务,从字符转换到数据类型检查,应有尽有。 1. ord函数和chr函数 Python的ord()函数可以返回Unicode字符对应的ASCII码值…...

树形结构-CRUD接口
先看一下效果:整体的效果 新增效果 --默认值是 default 修改效果 - 大致效果如上 --------------------------------------------------------------------------------------------------------------------------------- 下面讲解代码如何实现的 根据你使用…...

【Qt知识】Qt窗口坐标系
Qt的窗口坐标体系遵循标准的计算机图形坐标系统规则 Qt窗口坐标体系特点 坐标原点:窗口坐标体系的原点位于窗口的左上角,即坐标(0, 0)位置。 轴方向: X轴:向右为正方向,随着X坐标值的增加,元素在窗口中从…...

SAP Build引言
前言 SAP Build 似乎是一个整合了很多低代码或无代码产品的平台,最早的时候应该都是各自分开的几个产品,近年合并到一块上了SAP Build平台 现在看官网的介绍应该是有三四个产品被集成进来了,分别是SAP IRPA,SAP Workflow…...

2024上海国际钢丝绳及吊索具展览会
2024上海国际钢丝绳及吊索具展览会 2024 Shanghai International Wire Rope and Hanger Exhibition 时间:2024年12月18日--20日 地点:上海新国际博览中心 详询主办方陆先生 I38(前三位) I82I(中间四位ÿ…...

记一次mysql索引优化
生产日志告警出现一条慢 sql 告警, 通过 sql 监控平台拿到 这条sql 语句是 : SELECTid,report_id,report_detail_id,item_code,report_type,photo FROM**** 表 WHEREdel_flag 0 AND (report_type 1 AND report_detail_id IN ( 1742 )) 之后用 explain 分析这条 sql 的命中…...

【Javascript系列】Terser通过调用API来实现代码的压缩和优化功能
Terser通过调用API来实现代码的压缩和优化功能 起源通过API来调用API调用过程中的一个隐含的技术点 - 异步调用和Promise对象官方文档中的一个有点容易忽略和混淆的地方关于Promise 起源 书接 上回,对Terser的功能做了一个初步的探索。在官方的主页上,有…...

嵌入式期末复习
一、选择题(20) 二、判断题(10) 三、填空题(10) 主机-目标机的文件传输方式主要有串口传输方式、网络传输方式、USB接口传输方式、JTAG接口传输方式、移动存储设备方式。常用的远程调试技术主要有 插桩/st…...

生信算法7 - 核酸序列Fasta和蛋白PDB文件读写与检索
python 3.9实现以下算法。 1. 简单的写文件和读文件 # 写 file1 open(count.txt,w) file1.write(this is a test) file1.close()# 读 file2 open(my_file) print(file2.read())2. 将列表内容写入文本文件 # 生成100-500数字列表 data [i * 100 for i in range(1, 6)] pri…...

【Python】Python异步编程
Python 异步编程 异步编程 异步编程是一种编程范式,通过非阻塞的方式执行任务,允许程序在等待某些操作(如I/O操作、网络请求、数据库查询等)完成时,继续执行其他任务。这与同步编程(或阻塞编程)…...

pytorch笔记:自动混合精度(AMP)
1 理论部分 1.1 FP16 VS FP32 FP32具有八个指数位和23个小数位,而FP16具有五个指数位和十个小数位Tensor内核支持混合精度数学,即输入为半精度(FP16),输出为全精度(FP32) 1.1.1 使用FP16的优缺…...

地震勘探——干扰波识别、井中地震时距曲线特点
目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波:可以用来解决所提出的地质任务的波;干扰波:所有妨碍辨认、追踪有效波的其他波。 地震勘探中,有效波和干扰波是相对的。例如,在反射波…...
django filter 统计数量 按属性去重
在Django中,如果你想要根据某个属性对查询集进行去重并统计数量,你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求: 方法1:使用annotate()和Count 假设你有一个模型Item,并且你想…...

基于Docker Compose部署Java微服务项目
一. 创建根项目 根项目(父项目)主要用于依赖管理 一些需要注意的点: 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件,否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...
LLM基础1_语言模型如何处理文本
基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...
uniapp中使用aixos 报错
问题: 在uniapp中使用aixos,运行后报如下错误: AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...
【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分
一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计,提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合:各模块职责清晰,便于独立开发…...

Rust 开发环境搭建
环境搭建 1、开发工具RustRover 或者vs code 2、Cygwin64 安装 https://cygwin.com/install.html 在工具终端执行: rustup toolchain install stable-x86_64-pc-windows-gnu rustup default stable-x86_64-pc-windows-gnu 2、Hello World fn main() { println…...
苹果AI眼镜:从“工具”到“社交姿态”的范式革命——重新定义AI交互入口的未来机会
在2025年的AI硬件浪潮中,苹果AI眼镜(Apple Glasses)正在引发一场关于“人机交互形态”的深度思考。它并非简单地替代AirPods或Apple Watch,而是开辟了一个全新的、日常可接受的AI入口。其核心价值不在于功能的堆叠,而在于如何通过形态设计打破社交壁垒,成为用户“全天佩戴…...
基于鸿蒙(HarmonyOS5)的打车小程序
1. 开发环境准备 安装DevEco Studio (鸿蒙官方IDE)配置HarmonyOS SDK申请开发者账号和必要的API密钥 2. 项目结构设计 ├── entry │ ├── src │ │ ├── main │ │ │ ├── ets │ │ │ │ ├── pages │ │ │ │ │ ├── H…...

react-pdf(pdfjs-dist)如何兼容老浏览器(chrome 49)
之前都是使用react-pdf来渲染pdf文件,这次有个需求是要兼容xp环境,xp上chrome最高支持到49,虽然说iframe或者embed都可以实现预览pdf,但为了后续的定制化需求,还是需要使用js库来渲染。 chrome 49测试环境 能用的测试…...