Python函数 之 参数

news2024/9/21 19:07:21

1.参数的简单介绍 

  • 参数
    • 形式参数(形参):在函数定义的时候,在括号中写⼊变量,这个变量就称为是函数的参数。
    • 实际参数(实参):在函数调⽤的时候,可以给定义时候的形参传递具体的数据值,供其使⽤。
    • 在函数调⽤的时候,会将函数的实参值传递给形参。
  • 好处: 可以让函数更加的通用,函数中的数据值不是固定的,是调用的时候,你传递的。
  • 使用场景: 判断 函数中 数据值是不是固定不变的, 如果是变化的,就可以使⽤参数传递
  • 注意点: ⽬前书写的函数, 如果存在形参,必须传递相同个数的实参

2.函数传参的方式

函数传参:是指如何将 实参的值传递给形参

(1)位置传参

在函数调用的时候按照 形参的顺序将实参的值传递给形参

(2)关键字传参

在函数调用的时候, 指定将实参传递给哪个形参

(3)混合使用

  1. 位置参数必须写在关键字参数的前边, 关键字参数必须放在位置参数的后边
  2.  同一个形参只能接收一个实参值(不能既使用位置传参和关键字传参给同一个形参传参)
def show_info(name, age):
    print(f"name:{name}, age: {age}")

# 位置传参
show_info('小明', 18)

# 关键字传参
show_info(age=18, name='张三')

# 混合使用
show_info('李四', age=17)
# show_info(name='赵六', 19) # 关键字参数必须放在位置参数的后边
# show_info('王五', name="李四") # 不能既使用位置传参和关键字传参给同一个形参传参

 


3.缺省参数(默认参数)

(1)定义

在函数定义的时候, 给形参一个默认的数据值,这个参数就是缺省参数(默认参数)

(2)特点

在函数调用的时候, 缺省参数可以不用传递实参值.
  1. 如果不传实参值, 使用的就是默认值
  2. 如果传递实参值, 使用的就是传递的实参值

(3)注意点

缺省参数必须写在 普通参数的后边

(4)代码

"""
定义 show_info 参数 姓名,年龄, 性别, 将年龄设置为默认参数 18, 性别设置为默认 保密
"""


def show_info(name, age=18, sex='保密'):
    print(name, age, sex)


# 调用
show_info('张三', 18, '男')  # 张三 18 男
# 李四
show_info('李四')  # 李四 18 保密
# 王五 19
show_info('王五', 19)  # 王五 19 保密
# 赵六 男
show_info('赵六', sex='男')  # 赵六 18 男
# show_info('赵六', '男')  # 赵六 男 保密

小tips:parameter(形参)   argument(实参)


4.多值参数(可变参数/不定长参数) 

  1. 在函数定义的时候,不确定在调用的时候实参有多少个,此时可以使用 多值参数
  2.  在普通的参数前边加上一个 *这个参数就变为 多值参数
  3. 这个参数可以接收任意多个位置传参的数据, 类型 元组
  4. 这个形参一般写作 args(arguments), 即 *args

参数顺序:# 普通, 缺省, 多值

def 函数名(普通, *args, 缺省):
        pass

def func(*args):
    print(args)


func()  # ()
func(1, 2, 3)  # (1, 2, 3)

练习1: 定义一个函数,my_sum,作用,可以对任意多个数字进行求和计算.

def my_sum(*args):  # args 是元组
    num = 0
    for i in args:
        num += i
    return num


print(my_sum())  #
print(my_sum(1))  # 1
print(my_sum(1, 2))  # 3
print(my_sum(1, 2, 3))  # 6

 

练习2:需求对 元组(my_tuple = (1, 2, 3, 4, 5) )中的所有数据使用 my_sum 进行求和
注意: 想要把 列表(元组) 中的数据作为位置参数 进行传递, 只需要在 列表(元组)前边加上一个 *  ,进行 拆包 即可
def my_sum(*args):  # args 是元组
    num = 0
    for i in args:
        num += i
    return num


my_tuple = (1, 2, 3, 4, 5)
# 需求对 元组中的所有数据使用 my_sum 进行求和
# 想要把列表(元组) 中的数据作为位置参数进行传递, 只需要在列表(元组)前边加上一个 * ,进行拆包即可
print(my_sum(*my_tuple))  # 15

未完待续。。。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1921861.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

wps 将列的内容转换为一个单元格内容,并以逗号分隔

wps 将列的内容转换为一个单元格内容,并以逗号分隔 1.首先在一个空白单元格输入 2.输入函数TEXTJOIN 这个函数有三个参数,第一个:以什么分隔符分隔,第二个:是否忽略空白格,true:忽略 false:不忽略 第三个&…

怎么使用代理IP?如何检测代理IP是否有效?

代理IP是一种网络代理技术,它是通过中间服务器来转发网络请求的IP地址。当我们使用代理IP时,我们的真实IP地址会被隐藏起来,而代理服务器的IP地址会被用作我们的身份标识。使用代理IP的步骤如下: 1.选择合适的代理服务器 考虑服务…

【微信小程序知识点】转发功能的实现

转发功能,主要帮助用户更流畅地与好友分享内容与服务。 想实现转发功能,有两种方式: 1.页面js文件必须声明onShareAppMessage事件监听函数,并自定义转发内容。只有定义了此事件处理函数,右上角菜单才会显示“转发”按…

WebStorm 使用 ESLint 自动格式化代码

WebStorm 不能像 VSCode 那样在保存的时候自动 Fix-ESLint,不能自动格式化代码,需要安装一个插件 安装 ESLint 插件 进入设置快捷键 win:CtrlAltS mac: command, 找到 Plugins,搜索eslint 在这里插入图片描述 安装后配置一下 …

【通信协议-RTCM】MSM语句(1) - 多信号GNSS观测数据消息格式

注释: RTCM响应消息1020为GLONASS星历信息,暂不介绍,前公司暂未研发RTCM消息类型版本的DR/RTK模块,DR/RTK模块仅NMEA消息类型使用 注释: 公司使用的多信号语句类型为MSM4&MSM7,也应该是运用最广泛的语句…

从新手到进阶:高效设计 Tableau 可视化的 5 种技巧 | 数据可视化分析

让我们一起跟着大神学习五个超实用的技巧,加速你的可视化分析之旅! 在日常分析中,人人都想实现可视化最佳实践。然而,对于很多初学者来说,在还未熟练掌握 Tableau 的情况下,这种愿望貌似不太符合实际。 为…

【想心静?】红尘中修炼的功夫,才是真正的功夫

刘君亮想要去山中静坐,先生说: 你若是以厌弃身外事物的心去静中寻求天理,反而只会养出骄傲怠惰的习气。你若能不厌弃身外事物,然后再到静处涵养天理,却是好的。 去一个安静的地方,去沉静一下自己的内心也…

电子画册制作流程技巧大揭秘

​随着科技的发展,电子画册已经逐渐取代传统纸质画册,成为展示企业形象、传播信息的重要工具。一份精美的电子画册,不仅能提升企业品牌形象,还能吸引更多潜在客户。那么,如何制作一份既精美又实用的电子画册呢&#xf…

YOLOv8损失函数改进-增加MPDIoU提升边界框回归精度【附代码】

文章目录 前言文章概述必要环境一、修改方法1.修改配置文件2. 增加 MPDIoU3. 修改 BboxLoss类4. 修改 v8DetectionLoss 类的 init 方法 二、训练代码三、训练过程总结 前言 本篇博客我们将详细介绍如何在 YOLOv8项目中增加 MPDIoULoss,包括如何修改配置文件、增加新…

U盘打不开难题解析:原因、恢复与预防全攻略

在日常生活中,U盘作为一种便捷的数据存储设备,深受大家的喜爱。然而,有时我们可能会遇到U盘打不开的情况,这不仅令人困扰,还可能导致重要数据的丢失。那么,当U盘打不开时,我们该如何应对呢&…

[PM]原型与交互设计

原型分类 1.草图原型 手绘图稿, 规划的早期,整理思路会使用 2.低保真原型 简单交互, 无需配色, 黑白灰为主, 产品规划和评审阶段使用 标准化的低保真原型是高保真原型的基础 3.高保真原型 复杂交互, 一般用于公开演示, 产品先产出低保真原型, 设计师根据原型产出设计稿 低保…

2024-07-12 Unity AI状态机1 —— 框架介绍

文章目录 1 有限状态机2 状态机实现框架2.1 StateMachine2.2 BaseState2.3 ...State2.4 IAIObject 3 框架类图 本文章参考 B 站唐老狮 2023 年直播内容。点击前往唐老狮 B 站主页。 1 有限状态机 ​ 有限状态机(Finite - State Machine,FSM&#xff09…

如何让招投标数据成为企业决策的金钥匙?

在当今数据驱动的时代,招投标信息作为行业竞争情报的重要组成部分,正日益成为企业制定战略决策的关键依据。本文将深入探讨招投标数据采集的重要性,以及它如何为企业决策提供强有力的数据支持,同时揭秘如何高效、精准地获取这些数…

花几千上万学习Java,真没必要!(二)

1、注释: java代码注释分3种: 单行注释://注释信息 多行注释: /*注释信息*/ 文本注释:/**注释信息*/ public class TestComments {// 这是单行注释,用于注释单行代码或解释代码功能/* 这是多行注释,用于注释多行代码…

eMMC规范 - 寻址/信息寄存器/总线协议/时序图/速度模式

存储器寻址 e•MMC 规范的早期实现(至 v4.1 的版本)是采用 32-bit 域实现字节寻址的。这种寻址 机制允许最大 2 GB 的 e•MMC 容量。 为了支持更大的容量,寻址机制升级到支持扇区寻址( 512B 扇区)。对所有容量大于 2 …

在PyQt中为自己开发的软件实现远程文件“一机一码”授权管理实例

在使用PyQt搞软件开发时,开发者往往想要给自己的软件添加一个授权机制,只有当客户提供了授权码并且开发者将授权码放在授权管理系统的时候,客户端才能正常启动。这几天小陶就在捣鼓这个事,发现确实是可行的。 如果没有进行授权&a…

mybatis动态传入参数 pgsql 日期 Interval ,day,minute

mybatis动态传入参数 pgsql 日期 Interval 在navicat中,标准写法 SELECT * FROM test WHERE time > (NOW() - INTERVAL 5 day)在mybatis中,错误写法 SELECT * FROM test WHERE time > (NOW() - INTERVAL#{numbers,jdbcTypeINTEGER} day)报错内…

html5——CSS高级选择器

目录 属性选择器 E[att^"value"] E[att$"http"] E[att*"http"] 关系选择器 子代: 相邻兄弟: 普通兄弟: 结构伪类选择器 链接伪类选择器 伪元素选择器 CSS的继承与层叠 CSS的继承性 CSS的层叠性 …

redis介绍与布署

redis remote dictionary server(远程字典服务器) 是一个开源的,使用c语言编写的非关系型数据库,支持内存运行并持久化,采用key-value的存储形式。 单进程模型意味着可以在一台服务器上启动多个redis进程,…

基于语义的法律问答系统

第一步,准备数据集 第二步,构建索引数据集,问答对数据集,训练数据集,召回评估数据集 第三步,构建dataloader,选择优化器训练模型,之后召回评估 第四步,模型动转静,之后…