Python 位置参数基础教程示例

 更新时间:2023年09月07日 11:56:23   作者:严长生  
这篇文章主要为大家介绍了Python 位置参数基础教程示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

位置参数

有时也称必备参数,指的是必须按照正确的顺序将实际参数传到函数中,换句话说,调用函数时传入实际参数的数量和位置都必须和定义函数时保持一致。

实参和形参数量必须一致

在调用函数,指定的实际参数的数量,必须和形式参数的数量一致(传多传少都不行),否则 Python 解释器会抛出 TypeError 异常,并提示缺少必要的位置参数。

例如:

def girth(width , height):
    return 2 * (width + height)
#调用函数时,必须传递 2 个参数,否则会引发错误
print(girth(3))

运行结果为:

Traceback (most recent call last):
  File "C:\Users\mengma\Desktop\1.py", line 4, in <module>
    print(girth(3))
TypeError: girth() missing 1 required positional argument: 'height'

可以看到,抛出的异常类型为 TypeError,具体是指 girth() 函数缺少一个必要的 height 参数。

同样,多传参数也会抛出异常:

def girth(width , height):
return 2 * (width + height)
#调用函数时,必须传递 2 个参数,否则会引发错误
print(girth(3,2,4))

运行结果为:

Traceback (most recent call last):
  File "C:\Users\mengma\Desktop\1.py", line 4, in <module>
    print(girth(3,2,4))
TypeError: girth() takes 2 positional arguments but 3 were given

通过 TypeErroe 异常信息可以知道,girth() 函数本只需要 2 个参数,但是却传入了 3 个参数。

实参和形参位置必须一致

在调用函数时,传入实际参数的位置必须和形式参数位置一一对应,否则会产生以下 2 种结果:

抛出 TypeError 异常

当实际参数类型和形式参数类型不一致,并且在函数种,这两种类型之间不能正常转换,此时就会抛出 TypeError 异常。

例如:

def area(height,width):
return height*width/2
print(area("C语言中文网",3))

输出结果为:

Traceback (most recent call last):
  File "C:\Users\mengma\Desktop\1.py", line 3, in <module>
    print(area("C语言中文网",3))
  File "C:\Users\mengma\Desktop\1.py", line 2, in area
    return height*width/2
TypeError: unsupported operand type(s) for /: 'str' and 'int'

以上显示的异常信息,就是因为字符串类型和整形数值做除法运算。

产生的结果和预期不符

调用函数时,如果指定的实际参数和形式参数的位置不一致,但它们的数据类型相同,那么程序将不会抛出异常,只不过导致运行结果和预期不符。

例如,设计一个求梯形面积的函数,并利用此函数求上底为 4cm,下底为 3cm,高为 5cm 的梯形的面积。但如果交互高和下低参数的传入位置,计算结果将导致错误:

def area(upper_base,lower_bottom,height):
return (upper_base+lower_bottom)*height/2
print("正确结果为:",area(4,3,5))
print("错误结果为:",area(4,5,3))

运行结果为:

正确结果为: 17.5
错误结果为: 13.5

因此,在调用函数时,一定要确定好位置,否则很有可能产生类似示例中的这类错误,还不容易发现。

以上就是Python 位置参数基础教程示例的详细内容,更多关于Python位置参数的资料请关注脚本之家其它相关文章!

相关文章

  • 11月编程语言排行榜 Python逆袭C#上升到第4

    11月编程语言排行榜 Python逆袭C#上升到第4

    11月编程语言排行榜 Python逆袭C#上升到第4,无论在哪个榜单中 Python 都是保持着非同寻常的增长速度,为什么Python增长的这么快
    2017-11-11
  • Python中异常的捕获与处理详解

    Python中异常的捕获与处理详解

    这篇文章主要介绍了Python中异常的捕获与处理详解,调试Python程序时,经常会报出一些异常,异常的原因一方面可能是写程序时由于疏忽或者考虑不全造成了错误,这时就需要根据异常Traceback到出错点,进行分析改正,需要的朋友可以参考下
    2023-08-08
  • 动态规划之矩阵连乘问题Python实现方法

    动态规划之矩阵连乘问题Python实现方法

    这篇文章主要介绍了动态规划之矩阵连乘问题Python实现方法,较为详细的分析了矩阵连乘问题的概念、原理并结合实例形式分析了Python相关实现技巧,需要的朋友可以参考下
    2017-11-11
  • 深入理解Python中命名空间的查找规则LEGB

    深入理解Python中命名空间的查找规则LEGB

    这篇文章主要介绍了深入理解Python中命名空间的查找规则LEGB,作者根据Python3.x版本进行讲解,需要的朋友可以参考下
    2015-08-08
  • Python切片知识解析

    Python切片知识解析

    这篇文章主要介绍了Python切片知识解析的相关资料,需要的朋友可以参考下
    2016-03-03
  • 在pycharm中输入import torch报错如何解决

    在pycharm中输入import torch报错如何解决

    这篇文章主要介绍了在pycharm中输入import torch报错如何解决问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • 如何实现在jupyter notebook中播放视频(不停地展示图片)

    如何实现在jupyter notebook中播放视频(不停地展示图片)

    这篇文章主要介绍了如何实现在jupyter notebook中播放视频(不停地展示图片),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • python微信公众号开发简单流程实现

    python微信公众号开发简单流程实现

    这篇文章主要介绍了python微信公众号开发简单流程实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • 一篇文章带你了解Python中的装饰器

    一篇文章带你了解Python中的装饰器

    Python中的装饰器是你进入Python大门的一道坎,不管你跨不跨过去它都在那里,下面这篇文章主要给大家介绍了关于Python中装饰器的相关资料,需要的朋友可以参考下
    2022-03-03
  • Python将阿拉伯数字转换为罗马数字的方法

    Python将阿拉伯数字转换为罗马数字的方法

    这篇文章主要介绍了Python将阿拉伯数字转换为罗马数字的方法,涉及Python字符串转换及流程控制的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07

最新评论