课程笔记:

定义函数: 使用 def 来定义函数名,函数要以冒号结尾,使用三个引号将注释引起来,注释描述了函数的功能。

Python中device函数用法 python void函数_调用函数


Python中device函数用法 python void函数_调用函数_02


向函数中传递一个值:

Python中device函数用法 python void函数_ci_03


Python中device函数用法 python void函数_默认值_04


实参和形参: 实参是指实际向函数中传递的值,即在调用函数的时候再函数中输入的值;形参是指定义函数时所给定的参数,是函数完成工作所需要的一项信息。调用函数的时候,是将实参是存储在形参中来完成函数的执行。课后小练习:

8-1 消息: 编写一个名为 display_message() 的函数,它打印一个句子,指出你在本章学的是什么。调用这个函数,确定显示的消息正确无误。

Python中device函数用法 python void函数_ci_05


Python中device函数用法 python void函数_默认值_06


8-2 喜欢的图书: 编写一个名为 favorite_book 的函数,其中包含一个名为 title 的形参,使用这个函数打印一条消息。调用这个函数,并将一本图书的名称作为实参传递给它。

Python中device函数用法 python void函数_默认值_07


Python中device函数用法 python void函数_ci_08


课程笔记:

不同类型的实参:

1.位置实参:形参与实参之间简单的关联方式是基于实参的顺序。

2.关键字实参:传递给函数的是名称-值对,无须考虑函数的位置,指明函数调用中各个值的用途。(tip:使用关键词实参时,务必准确的指定函数定义中的形参名)

Python中device函数用法 python void函数_默认值_09


Python中device函数用法 python void函数_默认值_10


默认值: 定义函数时,可以给函数指定默认值,调用这个函数的时候,如果没有指定的实际参数,就会使用函数定义中形参的默认值。(tip:在形参列表中必须现列出没有默认值的形参,再列出有默认值的形参,Python才能正确的解读位置实参)

Python中device函数用法 python void函数_默认值_11


Python中device函数用法 python void函数_Python中device函数用法_12


Attention:在使用函数的时候,注意函数是否需要实参的输入。定义了形参,而调用函数时为输入实参,会导致下面类似的错误,Python会提示我们缺少什么样子的参数,缺少多少。

Python中device函数用法 python void函数_调用函数_13


Python中device函数用法 python void函数_ci_14


课后练习:

8-3 T恤: 编写一个名为 make_shirt() 的函数,它接受一个尺码以及要印到 T 恤 上是字样。这个函数应打印一个句子,概要的说明 T 恤的尺码和字样。

Python中device函数用法 python void函数_Python中device函数用法_15


Python中device函数用法 python void函数_Python中device函数用法_16


8-4 大号T 恤: 修改函数 make_shirt() ,使其在默认情况下制作一件印有“ I love Python ” 的大号 T 恤,调用这个函数来制作如下 T 恤:一件印有默认字样的大号 T 恤、一件印有默认字号的中号 T 恤个一件印有其他字样的 T 恤(尺码无关紧要)。

Python中device函数用法 python void函数_Python中device函数用法_17


Python中device函数用法 python void函数_ci_18


8-5 城市: 编写一个名为 describe_city() 的函数,它接受一座城市的名字以及该城市所属的国家。这个函数应打印一个简单的句子,如 Reykjavik is in Iceland。给用于存储国家的形参指定默认值。为三座不同的城市调用这个函数,且其中至少有一座城市不属于默认国家。

Python中device函数用法 python void函数_ci_19


Python中device函数用法 python void函数_调用函数_20


课程笔记:

返回值: 函数数据处理完成后,并非直接显示输出,而是返回一个或者一组值,函数返回的值被称为返回值,使用 ’ return ’ 关键字。使用返回值可以将程序的大部分工作移至函数中去,从而简化主程序。

Python中device函数用法 python void函数_ci_21


Python中device函数用法 python void函数_默认值_22


让实参变成可选: 在实际的问题中,并非在函数中定义的所有形参都会被使用。

Python中device函数用法 python void函数_调用函数_23


Python中device函数用法 python void函数_调用函数_24


使用默认值:

Python中device函数用法 python void函数_Python中device函数用法_25


Python中device函数用法 python void函数_默认值_26


可选值让函数能够处理各种不同的情形的同时,确保函数调用尽可能的简单。返回字典:

Python中device函数用法 python void函数_Python中device函数用法_27


Python中device函数用法 python void函数_调用函数_28


将函数和while循环结合起来使用:

Python中device函数用法 python void函数_调用函数_29


注意给程序设置一个退出的条件,避免无限循环 ! ! !

Python中device函数用法 python void函数_调用函数_30


课后练习:

8-6 城市名: 编写一个名为 city_country() 的函数,它接受城市的名称及其所属的国家,这个函数应返回一个格式类似于下面这样子的字符串:

"Santiago, Chile"

Python中device函数用法 python void函数_默认值_31


Python中device函数用法 python void函数_ci_32


8-7 专辑: 编写一个名为 make_album() 的函数,它创建一个描述音乐专辑的字典。这个函数应接受歌手的名字和专辑名,并返回一个包含这两项信息的字典。使用这个函数创建三个表示不同专辑的字典,并打印每个返回值,以核实字典正确地存储了专辑的信息。

  • 给函数 make_album() 添加一个可选形参,以使能够存储专辑包含的歌曲数。如果调用这个函数时指定了歌曲数,就将这个值添加到表示专辑的字典中。调用这个函数,并至少在一次调用中指定专辑包含的歌曲数。

Python中device函数用法 python void函数_默认值_33


Python中device函数用法 python void函数_调用函数_34

8-8 用户的专辑: 在为完成练习 8-7 编写的程序中,编写一个while 循环让用户输入一个专辑的歌手和名称。获取这些信息后,使用它们来调用函数 make_album() ,并将创建的字典打印出来。在这个while循环中,务必要提出退出的途径。

Python中device函数用法 python void函数_Python中device函数用法_35


Python中device函数用法 python void函数_调用函数_36


课程笔记:

传递列表: 把列表中的内容传递给函数使用,能够能加有效提高的处理效率。

Python中device函数用法 python void函数_Python中device函数用法_37


Python中device函数用法 python void函数_调用函数_38


在函数中修改列表: 使用两个列表,一个列表存储需要修改的值,另一个列表存储修改后的值,使用函数将一个列表中的值转移到另一列表中,即完成了列表的修改,具体的操作如下:

Python中device函数用法 python void函数_ci_39


Python中device函数用法 python void函数_Python中device函数用法_40


使用函数来重新组织代码,能够让程序的效率更高,主程序也更加清晰明白:

Python中device函数用法 python void函数_ci_41


Python中device函数用法 python void函数_调用函数_42


禁止函数修改列表: 传递列表的副本给函数,运用前面所学到的切片:

function_name(list_name[:])

课后练习:

8-9 魔术师: 创建一个包含魔术师名字的列表,并将其传递给一个名为 show_magicians() 的函数,这个函数打印列表中每个魔术师的名字。

Python中device函数用法 python void函数_调用函数_43

Python中device函数用法 python void函数_调用函数_44


8-10 了不起的魔术师: 在你为完成练习 8-9 而编写的程序中,编写一个名为 make_great() 的函数,对魔术师列表进行修改,在每个魔术师的名字中都加入字样 'the Great '。调用函数 show_magicians(),确认魔术师列表确实变了。

Python中device函数用法 python void函数_默认值_45


Python中device函数用法 python void函数_Python中device函数用法_46


8-11 不变的魔术师: 修改你为完成练习 8-10 而编写的程序,在调用函数 make_great()时,向它传递魔术师列表的副本。由于不想修改原始的列表,请返回修改完成后的列表,并将其存储到另一个列表中。分别使用这两个列表来调用 show_magicians(),确认一个列表包含的是原来的魔术师的名字,而另一个列表包含的是添加了字样 ’ the Great ’ 的魔术师名字。

Python中device函数用法 python void函数_Python中device函数用法_47


Python中device函数用法 python void函数_调用函数_48


传递任意数量的实参: 在形参前添加 ’ * ’ 号,能够使Python 创建一个元组来接受我们所传递进去的实参

Python中device函数用法 python void函数_ci_49


Python中device函数用法 python void函数_Python中device函数用法_50


结合位置实参和任意多实参: 任意多的实参要放在最后,Python 接受实参的时候先去匹配位置实参和关键字实参,最后才存放后面任意多的实参。

Python中device函数用法 python void函数_调用函数_51


Python中device函数用法 python void函数_Python中device函数用法_52


使用任意多的关键字实参: 在形参前添加两个星号,让其能够接受任意数量的键-值对:

Python中device函数用法 python void函数_默认值_53


Python中device函数用法 python void函数_默认值_54


8-12 三明治: 编写一个函数,它接受顾客要在三明治中添加的一系列食材。这个函数只有一个形参(它收集函数调用中所提到的所有食材),并打印一条消息,对顾客点的三明治进行概述。调用这个函数三次,每次都提供不同数量的实参。

Python中device函数用法 python void函数_调用函数_55


Python中device函数用法 python void函数_调用函数_56


8-13 用户简介: 复制前面的程序 user_profile.py,在其中调用 build_profile()来创建有关你的简;调用这个函数时,指定你的名和姓,以及三个描述你的键-值对。

Python中device函数用法 python void函数_Python中device函数用法_57


Python中device函数用法 python void函数_Python中device函数用法_58


8-14 汽车: 编写一个函数,将一辆汽车的信息存储在一个字典中。这个函数总是接受制造商和型号,还接受任意数量的关键字实参。这样调用这个函数:提供必不可少的信息,以及两个名称-值对,如颜色和选装配件。这个函数必须能够像下面这样进行调用:

car = make_car ('subra','outback',color = 'blue',tow_package=True)

打印返回字典,确认正确的处理了所有的信息。

Python中device函数用法 python void函数_默认值_59


Python中device函数用法 python void函数_默认值_60


将函数存储在模块内:

  • 导入整个模块:
import module_name
  • 导入特定函数:
from module_name import function_name
  • 导入模块中的所有函数:
from module_name import *

别名:

  • 使用 as 给函数指定别名:
from module_name import function_name as fn
  • 使用 as 给模块指定别名:
import module_name as mn

函数编写指南:

  • 给形参指定默认值时,等号两边不要有空格:
def function_name(parament_0,parament_1='default value')
  • 对于函数调用中的关键字实参,也应遵循这种约定:
function_name(value_0,parament_1='default value')

所有的 import 语句都应该放在文件的开头,唯一例外的情形是,在文件开头使用注释来描述整个程序。

呼~函数大概花了三天左右是时间学习,函数能够让代码更加的简单,效率更加高,在不同的情况下面,让函数正确的运行是比较困难的一部分,测试成功后感觉自己进步还是很大的。