#编程语言#

我是“学海无涯自学不惜!”,关注我,一同学习简单易懂的Python编程。

第八十七节:位置参数

位置参数,也被称作必备参数,就是说在创建函数的时候如果设定了参数,在参数传递的时候,后面的实际参数必须保持和函数创建时的形式参数一致的数量和位置。

首先,来看一下为什么要保持一致的数量。

就拿上节内容的bmi指数实例来做实验。了解Python函数中的形式参数和实际参数

在这个实例中,创建函数bmi()时创建了三个形式参数:“name,height,weight”,在调用函数的时候,先将最后一个实际参数取掉试试看,详见下图:

少一个参数的异常

结果出现了TypeError异常,这个异常的意思就是说缺少了一个“weight”参数。

那么在已经设定好的三个参数之外,调用函数的时候临时再增加一个参数,会怎么样呢?详见下图:

多一个参数的异常

结果还是出现了TypeError异常,这个异常的意思则是函数bmi()只设定了3个参数,实际参数却给了4个。

这两个实验的结果,证明了:参数设定好以后,数量是不能变化的,否则就会出现异常导致错误。

接下来,看一下参数的位置发生变化会发生什么样的情况。

在调用函数bmi()的时候,实际参数的位置做一点小调整,先将第一个参数name位置的“李四”和第二位置height参数的“1.9”互换位置,详见下图:

参数位置错误的异常

从结果上看,头三行的代码虽然执行了,但是出现了逻辑错误:姓名成了1.9,身高成了李四M,这显然不对,到了执行计算公式代码行的时候,由于“李四”是个字符串str,不能进行数据类型计算,所以出现了TypeError异常。

这个结果因为出现了TypeError异常而可以明白地察觉到,但是也有不出现明显异常的BUG,是不容易发现的。

这个实例中的调用函数的时候将第二位置的“1.9”和第三位置的“100”互换,又会发生什么情况呢?详见下图:

参数位置错误的BUG

请看,完全没有异常发生,代码被完整地执行了,结果出来后,仔细看看,身高变成了100M(米),体重变成了1.9(公斤),这位李四先生,体型就是一根100米高的草,而且必须是细草,否则不可能只有1.9公斤重……

这就是代码没有错,但是由于参数的错误,导致了出现了不合逻辑的BUG。

由以上两个实验得出的结论是:参数设定好以后,位置也是不能随意变更的,否则即使不出现异常,一会出现逻辑性BUG。

今天的内容看似简单,但却非常重要,Python虽然是包容性很强的编程语言,但在编写代码的逻辑细节上,还是容不得半点马虎。

感谢您的关注、分享、收藏和点赞!Python中如何创建和调用函数

明天奉上的将是“为参数设置默认值”,敬请拭目以待。正则表达式的基础知识和Python中的基本应用

为自己加油,我是“学海无涯自学不惜!”Python2.6版本以后的format()方法格式化字符串

python函数调用位置_关于Python函数中的位置参数相关推荐

  1. python函数调用位置_Python: 浅谈函数局部变量快在哪

    前言 这两天在 CodeReview 时,看到这样的代码 # 伪代码 import somelib class A(object): def load_project(self): self.proj ...

  2. 外星人入侵 python 飞船位置_《python从入门到实践》项目一:外星人入侵

    游戏编程思维导图 游戏思路 函数编写 第一次做思维导图,做的有点乱 解释:跟着<python编程从入门到实践>写完游戏程序后,写一下自己的心得体会.可以把这个游戏分为几块来理解.如果想要设 ...

  3. python函数def里面嵌套def,python菜鸟求问关于嵌套函数中作用域范围应该怎么理解?,python嵌套,直接上代码def l(l...

    python菜鸟求问关于嵌套函数中作用域范围应该怎么理解?,python嵌套,直接上代码def l(l 直接上代码def l(list): def d(): return list return d ...

  4. python 时间序列预测_使用Python进行动手时间序列预测

    python 时间序列预测 Time series analysis is the endeavor of extracting meaningful summary and statistical ...

  5. python 概率分布模型_使用python的概率模型进行公司估值

    python 概率分布模型 Note from Towards Data Science's editors: While we allow independent authors to publis ...

  6. python函数调用位置_python函数定义,调用,传参,位置参数及关键字参数,返回值

    使用函数是真正开始编程的第一步,函数y=f(x)我们并不陌生,对x进行一顿操作得到一个值y.给不同的x,进行相同的操作,得到相应的y值. 程序层面函数是执行特定任务的一段代码,将一段代码定义成函数并为 ...

  7. python中打开文件时只允许写入的模式是_在open函数中访问模式参数使用()表示打开一个文件只用于写入。(4.0分)_学小易找答案...

    [单选题]溢流坝属于( ) [单选题]在重力坝的底部沿坝轴线方向设置大尺寸的空腔,即为( ) [单选题]模式()的用途是打开一个文件用于追加.如果该文件已存在,文件指针将会放在文件的结尾.(4.0分) ...

  8. python 函数调用列表_在项目列表上调用一个函数的最简洁方法 - python

    在python 2中,我使用map将函数应用于多个项目,例如,删除所有与模式匹配的项目: map(os.remove,glob.glob("*.pyc")) 当然我忽略了os.re ...

  9. python打印时间_在Python中定义Main函数(第二部分)

    Main函数的最佳实践 既然您已经了解两种执行方式上的差异,那么掌握一些最佳实践方案还是很有用的.它们将适用于编写作为脚本运行的代码或者在另一个模块导入的代码. 如下是四种实践方式: 将大部分代码放入 ...

  10. anaconda中python的位置_科学网—查询Anaconda安装路径、安装包位置及授予访问权限 - 张伟的博文...

    (1)确认安装路径 输入以下命令: conda info --env 可以知道当前有哪些环境,以及环境路径: (2)Anaconda管理的包的位置 具体路径为F:\Anaconda\Lib\site- ...

最新文章

  1. JQuery 模糊匹配
  2. Gin使用mongo进行增删改查/聚合/数据转换
  3. 迪普科技以近50%份额全面中标国家电网2016信息化硬件采购
  4. Configuration、SessionFactory、Session
  5. Android GPS及地磁传感器 API
  6. 点到曲线的距离_如何从“圆锥”曲线到圆锥曲线
  7. java md5 16位解密_Java实现MD5(32/16位)大小写加密
  8. html 把文字显示控制,控制字体加粗显示的html标签是哪个
  9. 谈判失败:Oracle 杀死 Java EE
  10. 防火墙dhcp服务器性能,F100-A-G 防火墙当做DHCP服务器,下接E528交换机,能不能划分多个VLAN?...
  11. 性能提升 3 倍的树莓派 4,被爆设计缺陷!
  12. 使用Storyboard 创建ViewController
  13. [Mongodb]安装与启动
  14. 小程序tabBar设置
  15. unity blend混合
  16. 问题:控制台报错style-helper.mjs?d002:125 Uncaught (in promise) TypeError: Cannot read properties
  17. 大专学历计算机专业可以积分,持有大专紧缺急需专业可直接申请上海居住证积分?...
  18. 计算机电缆参数,计算机电缆的几个参数要求
  19. Nim博弈和威佐夫博弈 Return of the Nim
  20. c++内存管理:new与delete,深拷贝与浅拷贝

热门文章

  1. 11-散列1 电话聊天狂人(25 分)
  2. IE9父容器overflow:auto时,子容器状态更改导致滚动条下出现额外空间的问题探讨...
  3. Cocos2d-xJson数据解析(读取和写入)
  4. 游戏筑基开发之一级指针、二级指针的使用情形(C语言)
  5. 游戏开发筑基之控制台光标定位(C语言)
  6. Linux系统进程管理详解
  7. VXLAN配置实例(一)——VXLAN基本配置
  8. Leetcode 038报数 题目分析 +python实现
  9. NYOJ--12--喷水装置(二)
  10. opencv笔记(7):直方图均衡化