本节讨论Python下函数型参的预设值问题。

Python在设计函数时,可以给型参预设缺省值,当用户调用函数时可以不输入实参。如果用户不想使用缺省预设值则需要给型参一一赋值,可以给某些型参赋值或不按型参顺序用表达式给型参赋值,说起来有些绕,我们看看例子好了!

#define function: area with two args
def area(width = 10, height = 10):
     z = width * height
     print(z)

#define fucntion: main
def main():
     #call function area
     print("prototype: area(width = 10, height = 10):")
     print("area()")
     area()
     print("area(20)")
     area(20)
     print("area(width = 20)")
     area(width = 20)
     print("area(height = 30)")
     area(height = 30)
     print("area(20, 30)")
     area(20, 30)
     print("area(height = 30, width = 30)")
     area(height = 30, width = 30)
#entry of programme
main()

     代码第2~4行是采用预设型参值的方式定义了一个函数area。好处是在函数调用时可以不输入实参(第11行),用户函数调用时可以依据自己的需求修改或者说传入型参(第13行改变了width的值,而height的值仍使用预设值)(第19行,修改width的值为20,height的值为30),当然也可以不按型参顺序赋值(第21行),程序运行结果如下。

prototype: area(width = 10, height = 10):
area()
100
area(20)
200
area(width = 20)
200
area(height = 30)
300
area(20, 30)
600
area(height = 30, width = 30)
900

  Python很强大!

呵呵

Python学习教程(learning Python)--2.3.3 Python函数型参详解的更多相关文章

  1. Python学习入门基础教程(learning Python)--2.3.3Python函数型参详解

    本节讨论Python下函数型参的预设值问题. Python在设计函数时,可以给型参预设缺省值,当用户调用函数时可以不输入实参.如果用户不想使用缺省预设值则需要给型参一一赋值,可以给某些型参赋值或不按型 ...

  2. Python学习教程(learning Python)--2.3.4Python函数返回值

    本节讨论Python函数返回值问题. Python和C语言一样,也可以在函数结束时返回一个值.但在定义自己的Python函数时,是不需要指定返回值数据类型的,这和Python不关心变量的数据类型是一致 ...

  3. Python学习教程(learning Python)--2.3.2 Python函数实参详解

    本节主要讨论函数调用时参数的实参问题. 1. 实参赋值顺序和型参定义顺序一一对应 Python在调用哪个子函数时,如果型参为多个,一般实参的排布顺序和型参顺序保持一致,即一一对应.我们以下面的代码为例 ...

  4. python学习教程,史上最全面的python学习路线图

    Python 是Web 开发.游戏脚本.计算机视觉.物联网管理和机器人开发的主流语言之一,随着Python用户可以预期的增长,它还有机会在多个领域里登顶.Python学习路线分享给你. 阶段一是Pyt ...

  5. Python学习教程(learning Python)--2.3.5 Python返回多个值问题

    本节主要学习Python的函数是如何同时返回多个值的问题. 在学习Python的时候惊奇的发现,Python的函数可以同时返回多个值,很有意思. #define function sum def su ...

  6. Python学习教程(learning Python)--3.3.4 Python的if-elif-else语句

    Python的if-elif-else语句用于多种条件判断后选择某个语句块执行.该语句可以利用一系列条件表达式进行检查,并在某个表达式为真的情况下执行相应的代码.需要注意的是,虽然if/elif/el ...

  7. Python学习教程(learning Python)--3.3.3 Python逻辑关系表达式

    在if分支判断语句里的条件判断语句不一定就是一个表达式,可以是多个(布尔)表达式的组合关系运算,这里如何使用更多的关系表达式构建出一个比较复杂的条件判断呢?这里需要再了解一下逻辑运算的基础知识.逻辑关 ...

  8. Python学习教程(learning Python)--3.3.2 Python的关系运算

    如果if的condition不用布尔表达式来做条件判断而采用关系表达式,实际上关系表达式运算的结果要么是True要么是False.下面我们先了解一些有关关系运算符的基础知识,如下表所示. 做个小程序测 ...

  9. Python学习教程(learning Python)--3.3.1 Python下的布尔表达式

    简单的说就是if要判断condition是真是假,Python和C语言一样非0即真,所以如果if的condition是布尔表达式我们可以用True或者非0数(不可是浮点数)表示真,用False或者0表 ...

随机推荐

  1. TCP和HTTP的关系

    TCP和HTTP的关系 首先简单地看看tcp,TCP连接是通过4个值来识别的: <源IP地址 源端口号 目的IP地址 目的端口号> 这四个值定义了一个TCP连接,两条不同的TCP连接中这四 ...

  2. 【翻译习作】 Windows Workflow Foundation程序开发-第一章03

    1.2.2.Visual Studio 2005扩展包 微软也为Windows Workflow开发者提供了Visual Studio 2005扩展包.扩展包将许多功能集成到Visual Studio ...

  3. Android开发-API指南-<data>

    <data> 英文原文:http://developer.android.com/guide/topics/manifest/data-element.html 采集(更新)日期:2014 ...

  4. HTML5中querySelector()和querySelectorAll()

    HTML5向Web API新引入了document.querySelector以及document.querySelectorAll两个方法用来更方便地从DOM选取元素,功能类似于jQuery的选择器 ...

  5. 图的最短路算法 Bellman-Ford

    BF求图的最短路径的时间复杂度是O(MN),这样的时间复杂度并不比迪杰斯特拉算法好,但是BF算法支持图中存在负权的情况,但图中不能存在负圈,因为如果存在负圈,最短路是不存在的,因此BF算法的另一个重要 ...

  6. 【Hibernate 3】一对一映射配置

    一.一对一映射简介 一对一关联映射有两种实现策略: 第一种:主键关联,即让两个对象具有相同的主键值,以表明它们之间的一一对应的关系:数据库表不会有额外的字段来维护它们之间的关系,仅通过表的主键来关联 ...

  7. web关键词搜索高亮代码

    <script type="text/javascript"> /* * 参数说明: * obj: 对象, 要进行高亮显示的html标签节点. * hlWords: 字 ...

  8. dedecms手机站要同步pc站的图片

    首先在dede目录下面找到  /include/extend.func.php  文件 //添加自定义函数 function replaceurl($newurl){ $newurl=str_repl ...

  9. 索引 使用use index优化sql查询

    好博客:MySQL http://webnoties.blog.163.com/blog/#m=0&t=1&c=fks_08407108108708107008508508609508 ...

  10. [转]常用电器认证标志 && 手机频段

    一个手电筒就可以算得上一件家用电器的时代已经过去了,现在,谁家里不得有个几件?大家肯定看到了这些电器上贴的各种各样的认证标志了吧?看的人是眼花缭乱,目不暇接,更有一些是“洋认证”.下面罗列出一些常见的 ...