失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 四 什么是位置参数 Python位置参数

四 什么是位置参数 Python位置参数

时间:2020-03-10 20:20:46

相关推荐

四 什么是位置参数 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 异常。

例如:

输出结果为:

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'

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

def area(height,width):

return height*width/2

print(area("C语言中文网",3))

产生的结果和预期不符

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

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

运行结果为:

正确结果为: 17.5

错误结果为: 13.5

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

def area(upper_base,lower_bottom,height):

return (upper_base+lower_bottom)*height/2

print("正确结果为:",area(4,3,5))

print("错误结果为:",area(4,5,3))

如果觉得《四 什么是位置参数 Python位置参数》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。