第八章 函数

94 阅读2分钟

需要在程序中多次执行同一项任务时,你无需反复编写完成该任务的代码,而只需调用执行该任务的函数,让python运行其中的代码。

///

fullsizerender(38).jpg

关键字def来告诉python你要定义一个函数。这是函数定义,向python指出了函数名,还可能在括号内指出函数为完成其任务需要什么样的信息。

定义以冒号结尾

///

紧跟在def great_user():后面的所有缩进行构成了函数体

"""xxxxxxx"""被称为文档字符串的注释,描述了函数是做什么的。

///

向函数传递信息

fullsizerender(39).jpg

///

实参和形参

以上图为例 变量username是一个形参——函数完成其工作所需的一项信息

值‘jesse’是一个实参。实参是调用函数时给函数的信息

///

传递实参

位置实参

fullsizerender(40).jpg

关键词实参

是传递给函数的名称_值对

fullsizerender(41).jpg

///

默认值

fullsizerender(43).jpg

fullsizerender(42).jpg

若显性的给出animal_type的值 python将忽略这个形参的默认值

///

等效的函数调用

fullsizerender(44).jpg

fullsizerender(45).jpg

上面两条是等效的;下面三条也是等效的

///

返回值

函数返回的值被称为返回值

可使用return语句将值返回到调用函数的代码行

fullsizerender(46).jpg

///

让实参变成可选的

fullsizerender(47).jpg

///

返回字典

函数可返回任何类型的值 包括列表字典等较复杂的数据结构

fullsizerender(48).jpg

另一种(加入可选形参后的字典) fullsizerender(49).jpg

///

结合使用函数和while循环

fullsizerender(50).jpg

fullsizerender(51).jpg

///

传递列表

向函数传递列表很有用

fullsizerender(52).jpg

///

在函数中修改列表

函数中对列表进行的任何修改都是永久性的

可以在一个函数中调用另一个函数

fullsizerender(54).jpg

fullsizerender(53).jpg

///

禁止函数修改列表

fullsizerender(55).jpg

///

传递任意数量的实参

有时候你预先不知道函数需要接受多少个实参

fullsizerender(56).jpg

///

结合使用位置实参和任意数量实参

fullsizerender(57).jpg

///

使用任意数量的关键词实参

fullsizerender(58).jpg

fullsizerender(59).jpg ///

将函数存储在模块中

fullsizerender(60).jpg

///

导入整个模块

fullsizerender(62).jpg

fullsizerender(61).jpg

///

导入特定的函数

fullsizerender(63).jpg

///

使用as给函数指定别名

fullsizerender(64).jpg

fullsizerender(65).jpg

///

使用as给模块指定别名

fullsizerender(66).jpg

///

导入函数中的所有函数

fullsizerender(68).jpg

fullsizerender(67).jpg

///