Python之函数参数细讲

38 篇文章 62 订阅
订阅专栏


前言

  在调用函数时,大多数情况下,主调函数和被调函数之间有数据传递关系,这就是有参数的函数形式。函数参数的作用是传递数据给函数使用,函数利用接收的数据进行具体的操作处理。函数参数在定义函数时放在函数名称的后面的一对小括号中,对于初学者来说,函数参数一般是难点。接下来针对参数展开详细介绍。


一、了解形式参数和实际参数

  在使用参数时,经常会用到形式参数实际参数,二者都叫做参数,它们的区别将先通过形式参数与实际参数的作用来进行讲解,再通过一个比喻和实例进行深入探讨。

1. 通过作用理解

形式参数和实际参数在作用上的区别如下:

  • 形式参数:在定义函数时,函数名后面括号中的参数为 “形式参数”。
  • 实际参数:在调用一个函数时,函数名后面括号中的参数为 “实际参数”,也就是将函数的调用者提供给函数的参数称为实际参数。通过下图可以更好的理解。
    在这里插入图片描述

  根据实际参数的类型不同,可以分为将实际参数的值传递给形式参数将实际参数的引用传递给形式参数两种情况。其中,当实际参数为不可变对象时,进行值传递当实际参数为可变对象时,进行的是引用传递。实际上,值传递和引用传递的基本区别就是,进行值传递后,改变形式参数的值,实际参数的值不变;而进行引用传递后,改变形式参数的值,实际参数的值也一同改变
  例如,定义一个名称为 function 的函数,然后为 function() 函数传递一个字符串类型的变量作为参数(代表值传递),并在函数调用前后分别输出该字符串变量,再为 function() 函数传递一个列表类型的变量作为参数(代表引用传递),并在函数调用前后分别输出该列表。代码如下:

# 定义函数
def sentence(place):
    print('原值:', place)
    place += place
# 调用函数
print('==========值传递==========')
a = '丽江'
print('函数调用前:', a)
sentence(a)  # 采用不可变对象 —— 字符串
print('函数调用后:', a)
print('==========引用传递==========')
list1 = ['昆明', '长沙', '西安']
print('函数调用前:', list1)
sentence(list1)  # 采用可变对象 —— 列表
print('函数调用后:', list1)

上面代码的执行结果如下:

==========值传递==========
函数调用前: 丽江
原值: 丽江
函数调用后: 丽江
==========引用传递==========
函数调用前: ['昆明', '长沙', '西安']
原值: ['昆明', '长沙', '西安']
函数调用后: ['昆明', '长沙', '西安', '昆明', '长沙', '西安']

  从上面的执行结果可以看出,在进行值传递时,改变形式参数的值后,实际参数的值不改变在进行引用传递时,改变形式参数的值后,实际参数的值也发生改变

2. 通过一个比喻来理解形式参数和实际参数

  函数定义时参数列表中的参数就是形式参数,而函数调用时传递进来的参数就是实际参数。就像剧本选主角一样,剧本的角色相当于形式参数,而演角色的演员就相当于实际参数。


二、位置参数

  位置参数也称必备参数,是必须按照正确的顺序传到函数中,即调用时的数量和位置必须和定义时是一样的

1. 数量必须与定义时一致

  在调用函数时,指定的实际参数的数量必须与形式参数的数量一致,否则将抛出 TypeError 异常,提示缺少必要的位置参数。如下图代码所示:

在这里插入图片描述

2. 位置必须与定义时一致

在调用函数时,指定的实际参数的位置必须与形式参数的位置一致,否则将产生以下两种结果。

  • 抛出 TypeError 异常。抛出异常的情况主要是因为实际参数的类型与形式参数的类型不一致,并且在函数中,这两种类型还不能正常转换。 例如下图代码所示:

在这里插入图片描述

  • 产生的结果与预期不符。在调用函数时,如果指定的实际参数与形式参数的位置不一致,但是它们的数据类型一致,那么就不会抛出异常,而是产生结果与预期不符的问题。例如下图代码所示:

在这里插入图片描述

说明由于调用函数时,传递的实际参数的位置与形式参数的位置不一致时,并不会总是抛出异常,所以在调用函数时一定要确定好位置,否则会产生 Bug,还不容易被发现。


三、关键字参数

  关键字参数是指使用形式参数的名字来确定输入的参数值。通过该方式指定实际参数时,不再需要与形式参数的位置完全一致。只要将参数名写正确即可。这样可以避免用户需要牢记参数位置的麻烦,使得函数的调用和参数传递更加灵活方便。比如下图代码所示:

在这里插入图片描述


四、为参数设置默认值

  调用函数时,如果漏掉忘了指定某个参数则将会抛出异常,为了解决这个问题,我们可以为参数设置默认值,即在定义函数时,直接指定形式参数的默认值。这样,当没有传入参数时,则直接使用定义函数时设置的默认值。定义带有默认值参数的语法格式如下:

def functionname(..., [parameter1 = defaultvalue1]):
	[functionbody]

参数说明

  • functionname:函数名称,在调用函数时使用。函数名称的命名应遵循 标识符命名规则,如果有多个单词,每个单词用下划线_连接。
  • parameter1 = defaultvalue1:可选参数,用于指定向函数中传递的参数,并且为该参数设置默认值为 defaultvalue1。
  • functionbody:可选参数,用于指定函数体,即该函数被调用后,要执行的功能代码。

代码示例如下图所示:

在这里插入图片描述

说明在传参时,如果没有指定某个参数值,则使用形式参数中该参数的默认值;如果指定了参数值,则会覆盖默认值,使用指定的参数值;比如下图代码所示。

在这里插入图片描述

注意:在定义函数时,指定默认的形式参数必须在所有参数的最后,否则将产生语法错误。比如下图所示。

在这里插入图片描述

说明定义函数时,为形式参数设置默认值要牢记一点:默认参数必须指向不可变对象


五、可变参数

  在Python中,还可以定义可变参数。可变参数也称为不定长参数,即传入函数中的实际参数可以是任意多个。定义可变参数时,主要有两种形式:一种是 *parameter,另一种是 **parameter

1. *parameter

  这种形式表示接收任意多个实际参数并将其放到一个元组中。例如,定义一个函数,让其可以接收任意多个实际参数,代码如下图所示:

在这里插入图片描述

如果想要使用一个已经存在的列表作为函数的可变参数,可以在列表的名称前加 “ * ”。例如下图代码所示:

在这里插入图片描述

2. **parameter

  这种形式表示接收任意多个类似于关键字参数一样显式赋值的实际参数,并将其放到一个字典中。例如,定义一个函数,让其可以接收任意多个显式赋值的实际参数,代码如下图所示:

在这里插入图片描述

如果想要使用一个已经存在的字典作为函数的可变参数,可以在字典的名称前加 “ ** ”。例如下图代码所示:

在这里插入图片描述


总结

  参数是学习函数必须要精通的重要一环。对初学者来说,默认值参数是易错点可变参数是难点每个参数都是要掌握的重点

Python函数参数操作详解
09-20
Python 函数参数是编程中非常基础且重要的概念,它们提供了函数功能的灵活性和多样性。在Python中,函数参数分为多种类型,包括形参、实参、默认参数、关键字参数可变参数等。 1. **形参与实参**: - 形参...
Python 函数参数详解
qq_17481591的博客
04-07 1688
一文学会Python函数的传参
Python函数参数详解
cnds123的专栏
03-03 5694
Python函数参数详解。python提供了极为灵活的参数处理机制。 形参 (parameters)是指出现在函数定义中的名称,定义了一个函数能接受何种类型的实参。而 实参(参数arguments) 则是在调用函数 (function ,也称为 method )时实际传入的值。
python函数参数传递(params, *params, **params)
热门推荐
Cherzhoucheer的博客
11-10 2万+
一般最开始接触也就是最简单的函数参数形如 def fuc(x) ,但是也有复杂的函数参数传递方式,总结一下python的传参方式,先介绍一下参数的基本类型,最后讲到最复杂的(**params)类型。 1. 位置参数 一个最简单的函数形式,其中x,y就是位置参数: def add_both(x, y): return x+y 2. 默认参数 最大的好处是能降低调用函数的难度; ...
Python入门篇】——Python函数函数介绍,函数的定义,函数参数函数的返回值)
2201_75366661的博客
06-08 5013
Python入门篇】——Python函数函数介绍,函数的定义,函数参数函数的返回值)
python 函数参数
王献运的博客
05-29 4356
函数参数分为形式参数和实际参数:简称形参和实参在定义函数阶段依次填写的参数名字,称为:形式参数(也称为形参)作为函数的输入,以便在函数内部进行处理。而在调用函数阶段,函数名括号中需要传入具体的值作为实际参数(也称为实参),这些实参会被赋值给函数中的形参,并作为函数的输入。实参(值)会赋值给形参(变量名)。实参与形参的这种绑定关系只在函数调用时生效,在调用结束后解除。形参可以看成是变量名,实参可以看成是变量值他们两个在函数调用阶段临时绑定关系,形参=实参那就是变量名。
Python函数参数匹配模型详解
01-20
函数参数的处理方式是Python灵活性的关键之一。本文将深入探讨Python函数参数匹配模型,包括*args和**kwargs的使用,以及如何混合使用不同类型的参数。 1. **任意数量的位置参数(*args)** 在Python中,当你...
Python函数参数分类原理详解
09-16
### Python函数参数分类原理详解 #### 一、参数的基本概念 在Python中,函数是程序设计的基本构建块之一,用于封装一系列执行特定任务的操作。为了使函数能够接收外部输入并根据这些输入执行不同的操作,我们需要...
python 函数中的参数类型
01-20
初学者遇到这个多少都有点懵逼,今天我们来把Python中的函数参数进行分析和总结。 2.Python 中的函数参数Python中定义函数参数有5种类型,我们来一一演示它们。 2.1必选参数 必须参数是最基本的参数类型,当你在...
一文讲透Python函数中的形式参数和实际参数
最新发布
m0_72274883的博客
02-08 911
函数参数包括形式参数和实际参数,简称形参和实参。其中形式参数即是在定义函数函数后面括号中的参数列表(parameterlist),比如上一个帖子的示例中的width, length;实际参数则是调用函数函数后面括号中的参数值(parametervalue),比如之前帖子的示例中的4,6。所以,调用函数时需要把实际参数传递给形式参数,才能使函数对这些参数进行运算或处理。
python 函数参数 (必看)
Chen_798的博客
03-29 7505
python函数是非常重要的一个知识点,想要把函数学习好,就必须要把函数参数学习好,这样才能够进行很好的传递参数,发挥出应有的作用 函数参数分类: 形式参数和实际参数 关键字参数 可变类型参数和不可变类型参数 位置参数 可变长度参数 默认值参数 - 形参(形式参数)和实参(实际参数) 形参:就是定义一个函数的时候,函数名称后面 () 中的参数 实参:就是函数调用的时候,() 中的参数 如下实例中,a 就是实参,b 就是形参 # 定义一个函数名为 test_one def .
python传参的参数函数
devil_son1234的博客
04-23 1910
第一种情况:在调用second方法的时候,参数名为second def first(a, b): print "asdf",a b() return "bbb" def second(): print "success" return "ok" print first("aaa", second) 输出结果为 asdf aaa success b...
Python函数参数详解
weixin_51317139的博客
09-06 198
Python函数参数用于接收输入的值,并在函数体内进行处理。函数参数的作用有以下几点:传递数据:函数参数允许我们将数据传递给函数,供函数内部使用。通过参数,我们可以在函数内部访问和操作外部的数据。指定参数类型:参数可以用来指定函数所接受的数据类型。这使得函数更加严谨,在调用时会进行类型检查,确保传递的数据符合函数预期的类型。设置默认值:通过给参数设置默认值,我们可以在函数调用时对参数进行省略。这样可以增加函数的灵活性,并简化代码。默认值使得函数可以适应多种场景,同时允许用户提供自定义的值。
Python培训2
书伯的博客
10-25 684
一、条件语句 1、什么是条件语句 Python 条件语句跟其他语言基本一致的,都是通过一条或多条语句的执行结果( True 或者 False )来决定执行的代码块。 Python 程序语言指定任何非 0 和非空(null)值为 True,0 或者 null 为 False。 执行的流程图如下: 2、if 语句的基本形式 Python 中,if 语句的基本形式如下: if 判断条件: 执行语句…… else: 执行语句…… 之前的章节也提到过,Python 语言有着严格的缩进要求,因此这里
详解python函数参数
m0_56410013的博客
04-13 6982
python函数参数分类 一、参数的定义 1、函数参数在哪里定义 在python中定义函数的时候,函数名后面的括号里就是用来定义参数的,如果有多个参数的话,那么参数之间直接用逗号, 隔开 案列: 2、带参数函数调用: 函数定义了参数,那么调用函数的时候就需要传入参数 上面的案列中,我们定义函数的时候在函数名后面的括号里定义的参数叫做形参, 而我们调用函数的时候传入的参数叫做实参,形参是用来接收实参的。 二、参数分类 上面我们说了形参和实参,那么形参和实参在在定义和调用的时候,根据形式不同有可以分
python函数参数,匿名函数,局部变量和全局变量)
weixin_45272371的博客
06-05 1939
对于函数参数,这个地方,刚开始的时候,我根本没有理解到。我也是理解了很久,后面理解了,但是在使用过程中,其实也在出错。所以在这里就专门的总结一下。以上就是平时使用中,容易混淆的地方。这次在这里专门总结出来,目的就是加深记忆。前言。
Python形式参数与实际参数的区别
m0_70911440的博客
02-02 1848
形式参数是在函数定义时声明的参数,用于接收调用函数时传递的参数值。形式参数是在函数定义时声明的参数,而实际参数是在函数调用时传递给函数的值。在上述代码中,我们使用关键字传递参数,明确指定了实际参数对应的形式参数。在函数中,我们可以使用形式参数和实际参数进行各种操作和计算,确保函数能够适应不同的使用场景。而通过实际参数,我们可以在函数调用时传递不同的值,从而在函数体内得到不同的结果。在函数定义时,可以将形式参数设置为可变参数,以便接收任意数量的实际参数。实际参数是在函数调用时传递给函数的值。
day11 函数参数列表
weixin_30505043的博客
04-25 362
""" 今日内容: 1、函数参数的分类 2、形参是对实参的值拷贝 3、实参的分类 4、形参的分类 5、打散机制 附1:字符串的比较 """ """ 一、函数参数的分类 1、函数参数分为两类:形参 及 实参 -- 形参:形参是在创建过程中声明的参数,如果不给形参传入特定的实参,形参就没...
python函数参数
qq_24889005的博客
08-24 656
文章目录一、函数参数类型1. 必选参数位置参数)2.默认参数3.不定长参数可变参数)4.关键字参数二、函数参数顺序1.python2/3:(位置参数,默认参数,*args)2.python3: (位置参数,*args,默认参数)3.python2/3:*args,**kwargs与位置参数,默认参数混用情况4.总结 一、函数参数类型 python函数参数定义有以下四种类型: 1. 必选参数位置参数) 调用函数时必须赋值的参数。 注:必须按照正确的数量和顺序依次传入函数。 def fun(x): re
Python3函数参数传递机制深度解析
"Python3中函数参数传递方式实例详解" 在Python3中,函数参数的传递方式是基于引用的,但这种引用并非像C++或Java中的指针那样直接操作内存地址,而是通过对象的拷贝机制来实现。下面我们将详细讨论Python3中函数...
写文章

热门文章

  • VMware虚拟机卸载详细教程 50616
  • 电脑怎么查看是固态硬盘还是机械硬盘 27562
  • Python中基本输入和输出 22273
  • Python中的所有运算符以及运算符的优先级 20183
  • Python语言的33个保留字(记得一定要收藏好哦) 19844

分类专栏

  • 黑客攻击与防御 22篇
  • 网络爬虫 7篇
  • 常用数据库介绍 4篇
  • web前端 2篇
  • Python入门基础语法 38篇

最新评论

  • VMware中安装WindowsXP虚拟机详细步骤

    Zhangenshuo2008: 求助,重启倒计时完之后报不可恢复错误vcpu0和vcpu2 怎么办啊表情包

  • VMware中安装WindowsXP虚拟机详细步骤

    Meijiangzmj: 能分享一下XP 专业版的ISO吗?谢谢!

  • VMware中安装WindowsXP虚拟机详细步骤

    2301_76901248: https://blog.csdn.net/iteye_1803/article/details/82136913?ops_request_misc=&request_id=&biz_id=102&utm_term=windowsxp%E7%9A%84%E4%BA%A7%E7%89%87%E5%BA%8F%E5%88%97%E5%8F%B7&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-82136913.142^v100^pc_search_result_base9&spm=1018.2226.3001.4187

  • VMware中安装WindowsXP虚拟机详细步骤

    2301_76901248: https://blog.csdn.net/iteye_1803/article/details/82136913?ops_request_misc=&request_id=&biz_id=102&utm_term=windowsxp%E7%9A%84%E4%BA%A7%E7%89%87%E5%BA%8F%E5%88%97%E5%8F%B7&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-82136913.142^v100^pc_search_result_base9&spm=1018.2226.3001.4187

  • VMware中安装WindowsXP虚拟机详细步骤

    2301_76901248: https://blog.csdn.net/iteye_1803/article/details/82136913?ops_request_misc=&request_id=&biz_id=102&utm_term=windowsxp%E7%9A%84%E4%BA%A7%E7%89%87%E5%BA%8F%E5%88%97%E5%8F%B7&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-82136913.142^v100^pc_search_result_base9&spm=1018.2226.3001.4187

大家在看

  • 大数据新视界 --大数据大厂之JavaScript在大数据前端展示中的精彩应用 1628
  • 架构师的七大核心能力 214
  • C++:类和对象OJ题 985
  • 【comfyUI工作流】一键生成专属欧美漫画!
  • Java创建接口详细过程 26

最新文章

  • 虚拟局域网
  • 生成树协议
  • 交换机基本原理
2024年20篇
2023年67篇
2022年21篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员小十一

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家山西仿古校园玻璃钢景观雕塑厂家济南玻璃钢动物雕塑厂家思明园林玻璃钢雕塑哪家好福建商业商场美陈生产十堰市玻璃钢雕塑江苏大型商场创意商业美陈怎么做晋中玻璃钢卡通雕塑厂家南通大型玻璃钢雕塑公仔玻璃钢仿铜板雕塑辽宁玻璃钢海豚雕塑定制濮阳玻璃钢景观雕塑哪家好玻璃钢雕塑玻璃钢雕塑张家界校园玻璃钢雕塑玻璃钢花盆厂设备厂家哈尔滨玻璃钢雕塑灯厂家汝南玻璃钢雕塑费用佳木斯市玻璃钢雕塑西安城市玻璃钢雕塑造型红色玻璃钢雕塑包括哪些海南玻璃钢雕塑厂价格曲阳玻璃钢马雕塑玻璃钢公牛雕塑拓展玻璃钢雕塑有限公司玻璃钢彩绘马主题雕塑玉溪市玻璃钢雕塑加盟商福建模压法玻璃钢雕塑销售临汾玻璃钢人物雕塑厂家商场服饰专柜过年美陈山东户外商场美陈厂家供应濮阳校园玻璃钢人物雕塑批发香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化