Python编程从入门到实践日记Day26

第7章 函数(二)

1.传递实参

鉴于函数定义中可能包含多个形参,因此函数调用中也可能包含多个实参。向函数传递实参的方式很多,可使用位置实参,这要求实参的顺序与形参的顺序相同;也可使用关键字实参,其中每个实参都由变量名和值组成;还可使用列表和字典。下面来依次介绍这些方式。

—  位置实参

当你调用函数时,Python必须将函数调用中的每个实参都关联到函数定义中的一个形参。为此,最简单的关联方式是基于实参的顺序。这种关联方式被称为位置实参。

为明白其中的工作原理,来看一个显示宠物信息的函数。这个函数指出一个宠物属于哪种动物以及它们叫什么名字,如下所示:

这个函数表明它需要一种动物类型和一个名字。调用describe_pet()时需要按照顺序提供动物类型以及名字。例如,实参‘hamster’存储在形参animal_type中,而实参‘harry’存储在形参pet_name中。在函数体内,使用了这两个形参来显示宠物的信息。

输出描述了一只名为Harry的仓鼠:

--调用函数多次

你可以根据需要调用函数任意次。要再描述一个宠物,只需再次调用describe_pet()即可:

第二次调用describe_pet()函数时,我们向它传递了实参‘dog’和‘willie’。与第一次调用时一样,Python将实参‘dog’关联到形参animal_type,并将实参‘willie’关联到形参pet_name。与前面一样,这个函数完成其任务,但打印的是一条名为Willie的小狗的信息。至此,我们有一只名为Harry的仓鼠,还有一条名为Willie的小狗:

调用函数多次是一种效率极高的工作方式。我们只需在函数中编写描述宠物的代码一次,然后每当需要描述新宠物时,都可调用这个函数,并向它提供新宠物的信息。即便描述宠物的代码增加到了10行,你依然只需要使用一行调用函数的代码,就可描述一个新宠物。

在函数中,可根据需要使用任意数量的位置实参,Python将按顺序将函数调用中的实参关联到函数定义中相应的形参。

--位置实参的顺序很重要

使用位置实参来调用函数时,如果实参的顺序不正确,结果可能出乎意料:

在这个函数调用中,我们先指定名字,再指定动物类型。由于实参‘harry’在前,这个值将存储到形参animal_type中;同理,‘hamster’将存储到形参pet_name中。结果是我们得到了一个名为Hamster的harry:

如果结果像上面一样搞笑,请确认函数调用中实参的顺序与函数定义中形参的顺序一致。

—  关键字实参

关键字实参是传递给函数的名称-值对。你直接在实参中将名称和值关联起来了,因此向函数传递实参时不会混淆(不会得到名为Hamster的harry这样的结果)。关键字实参让你无需考虑函数调用中的实参顺序,还清楚地指出了函数调用中各个值的用途。

下面来重新编写这个代码,在其中使用关键字实参来调用describe_pet():

函数describe_pet()还是原来那样,但调用这个函数时,我们向Python明确地指出了各个实参对应的形参。看到这个函数调用时,Python知道应该将实参‘hamster’和‘harry’分别存储在形参animal_type和pet_name中。输出正确无误,它指出我们有一只名为Harry的仓鼠。

关键字实参的顺序无关紧要,因为Python知道各个值该存储到哪个形参中。下面两个函数调用是等效的:

注意:使用关键字实参时,务必准确地指定函数定义中的形参名。

_

如果大家有什么好的意见或建议,记得留言哦!

.describe() python_Python编程从入门到实践日记Day26相关推荐

  1. python从入门到实践_Python编程从入门到实践日记Day32

    Python编程从入门到实践日记Day32 第7章 函数(八) 1.传递任意数量的实参 - 使用任意数量的关键字实参 有时候,需要接受任意数量的实参,但预先不知道传递给函数的会是什么样的信息.在这种情 ...

  2. python 从入门到实践_Python编程从入门到实践日记Day15

    Python编程从入门到实践日记Day15 第5章 字典(三) 1.使用字典(三) -由类似对象组成的字典 在前面的示例中,字典存储的是一个对象(游戏中的一个外星人)的多种信息,但你也可以使用字典来存 ...

  3. python tk combobox设置值为空_Python编程从入门到实践日记Day24

    Python编程从入门到实践日记Day24 第6章 用户输入和while循环(五) 1. 使用while循环来处理列表和字典(二) - 删除包含特定值的所有列表元素 在之前我们学过可以使用函数remo ...

  4. python编程从入门到实践日记day13-青鬆下的ミ坚躯 的个人博客

    工具/原料计算机Linux操作系统方法/步骤方法一,查看配置文件,输入命令cat /etc/resolv.conf,从结构中可以看到DNS是180.76.76.76,备用DNS是114.114.114 ...

  5. python编程 从入门到实践怎么样-python编程从入门到实践这本书怎么样

    <Python编程-从入门到实践>作者: Eric Matthes,已翻译为中文,人民邮电出版社出版. python编程从入门到实践怎么样? 我们一起看看已经学习的同学对这本书的口碑和评价 ...

  6. python编程入门指南怎么样-python编程从入门到实践这本书怎么样

    <Python编程-从入门到实践>作者: Eric Matthes,已翻译为中文,人民邮电出版社出版. python编程从入门到实践怎么样? 我们一起看看已经学习的同学对这本书的口碑和评价 ...

  7. python编程 入门到实践-终于懂了python编程从入门到实践

    Python语言是一种典型的脚本语言,简洁,语法约束少,接近人类语言.有丰富的数据结构,例如列表.字典.集合等.具有可移植性,支持面向过程和面向对象编程,并且开源.以下是小编为你整理的python编程 ...

  8. python编程 从入门到实践豆瓣-三周刷完《Python编程从入门到实践》的感受

    本文将以对话采访的形式展现 为什么会选择学习Python 语法简洁,实用,和golang部分类似,学习性价比高: 应用范围广,涉及后端,机器学习,图像处理,游戏等: 好奇这是一门怎样的语言 计划如何学 ...

  9. python入门到实践-Python编程从入门到实践(基础入门)

    Python编程从入门到实践-------基础入门 1.Python中的变量 2.Python首字母大写使用title()方法,全部大写upper()方法,全部小写lower()方法 3.Python ...

最新文章

  1. linux的rt补丁安装,微软发布补丁封杀允许Surface RT安装Linux的“漏洞”
  2. mysql left day 7_day7-mysql函数
  3. 【译】A quick list of new enterprise features in iOS 13, iPadOS, and macOS 10.15 Catalina
  4. 年度最Hot,三大热点赛题,首届「马栏山」杯国际音视频算法大赛正式开赛
  5. JAVA——构建FAT32文件系统的DBR(DOS引导记录)类
  6. 【倍增】【线段树】雨林跳跃(luogu 7599[APIO 2021 T2])
  7. 新手上路之django项目开发(二)-----mysql数据库配置及其增删改查操作
  8. 树莓派基金会来号召用键盘生物学家研究企鹅
  9. php类方法属性省略,第十课—类的属性和类的方法 2018年9月3日 20时00分
  10. ggsci | ggplot2的颜色标度拓展包(1):科研配色风格
  11. 百度人脸识别技术应用001---百度人脸识别应用业务介绍
  12. python调包侠_sklearn调包侠之K-Means
  13. 090525 T 站点地图接口
  14. 【MFC开发(15)】进度条控件Progress Control
  15. 计算机三级网络技术考过指南
  16. ThinkPad T61 X61安装XP系统的方法及xp驅動下載
  17. 小米笔记本装了linux后u盘启动不了,小米笔记本bios设置u盘启动教程
  18. 下载flash文件的若干方法!
  19. c51 c语言 16位二进制转换为bcd码,16位二进制转换为BCD码的C51汇编程序.doc
  20. 导出android app安装包,Android app导出apk方法

热门文章

  1. android判断模拟器的三种方法
  2. WeTool逆向:借用别人的成果 打造自己的程序
  3. 1.13 空字符串和null的区别
  4. 打开指定大小的新窗口
  5. B - Bone Collector (01背包)
  6. 1135 Is It A Red-Black Tree (30 分)【难度: 难 / 知识点: 红黑树 未完成】
  7. 1001 A+B Format (20 分)【难度: 简单 / 知识点: 模拟】
  8. Linux搜索查找命令合集
  9. Bootstrap的x-editable行编辑
  10. 【数据结构-树】4.图解平衡二叉树和哈夫曼编码(逐步演绎,一文读懂)