什么是位置参数,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爬虫时间戳
- python字符串转化列表_Python列表到字符串的转换[通俗易懂]
- 浙江新增python编程_9月起,浙江省八年级新增Python编程课,未来编程是处理大数据的手段…「建议收藏」
- python移动app开发_神奇的Kivy,让Python快速开发移动app
- python编程是什么-Python编程
- python编程是啥-Python编程「建议收藏」
- 符合python命名规范的标识符是什么_Python标识符命名规范
- Python 技巧篇-pip卸载python库实例演示,查看pip命令大全方法[通俗易懂]
- Python编程 print输出函数
- 【说站】Python中SKlearn是什么
- 【说站】python中的Locust是什么
- 【说站】Python Dijkstra算法是什么
- Python 下载大文件,哪种方式速度更快
- Python将数据写入txt文件_python将内容写入txt文件
- python分段线性插值_Python实现分段线性插值
- Python学习:6.python内置函数详解编程语言
- python数据类型及其特有方法详解编程语言
- python函数的万能参数详解编程语言
- 安装Python MySQL驱动之快速指南(python安装mysql驱动)
- 如何判断你的 Python 代码实现是否合适?
- 革命性技术:Python与MSSQL的携手合作(python和mssql)
- Linux下Python编程:从入门到精通(linux下python编程)
- python实现异步回调机制代码分享