python3基础---函数

1 函数概述

示例:
python3基础---函数

2 实参和形参

示例:
python3基础---函数
实参是调用函数时传递给函数的信息。

注意 大家有时候会形参、实参不分,因此如果你看到有人将函数定义中的变量称为实参或将函数调用中的变量称为形参,不要大惊小怪。

3 传递实参

函数定义中可能包含多个形参,因此函数调用中也可能包含多个实参。
向函数传递实参的方式有很多,下面依次介绍:

3.1 位置实参

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

注意:位置实参的顺序很重要,函数调用中实参的顺序要和函数定义中实参的顺序保持一致!

3.2 关键字实参

关键字实参 是在调用函数时传递给函数的名称—值对。直接在实参中将名称和值关联起来了,无需考虑函数调用中的实参顺序。
示例:
python3基础---函数

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

3.3 默认值

定义函数时,可以给每个形参指定默认值,函数调用时,若给形参提供了实参,使用此实参值,否则,使用形参的默认值。
python3基础---函数

注意:  使用默认值时,在形参列表中必须先列出没有默认值的形参,再列出有默认值的实参。这让Python依然能够正确地解读位置实参。

示例:
python3基础---函数

注意:可混合使用位置实参、关键字实参和默认值,通常有多种等效的函数调用方式。
 使用哪种调用方式无关紧要,只要函数调用能生成你希望的输出就行。使用对你来说最容易理解的调用方式即可。

4 返回值

函数并非总是直接显示输出,相反,它可以处理一些数据,并返回一个或一组值。函数返回的值被称为返回值 。在函数中,可使用return 语句将值返回到调用函数的代码行。返回值让你能够将程序的大部分繁重工作移到函数中去完成,从而简化主程序。

4.1 返回简单值

示例:
python3基础---函数

4.2 返回字典

函数可返回任何类型的值,包括列表和字典等较复杂的数据结构。
示例:
python3基础---函数

可选形参,其默认值设置为空的字符串!

示例:
python3基础---函数

5 结合使用函数和while循环

示例:
python3基础---函数

6 传递列表

python3基础---函数

6.1 在函数中修改列表

示例:
…不适用函数:
python3基础---函数
…使用函数:
python3基础---函数

6.2 禁止函数修改列表

有时候,需要禁止函数修改列表,这时可以复制列表,将列表的副本传递给函数,操作列表副本时不会影响到原列表。除非有充足的理由传递列表副本,否则应将原列表传递给函数,这样可以避免花时间和内存去创建副本,从而提高效率。

示例:
python3基础---函数
python3基础---函数

7 传递任意数量的实参

有时候,你预先不知道函数需要接受多少个实参,Python允许函数从调用语句中收集任意数量的实参。

示例:
python3基础---函数

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

如果要让函数接受不同类型的实参,必须在函数定义中将接纳任意数量实参的形参放在最后。Python先匹配位置实参和关键字实参,再将余下的实参都收集到最后一个形参中。

示例:
python3基础---函数

7.2 结合使用关键字实参和任意数量实参

有时候,需要接受任意数量的实参,但预先不知道传递给函数的会是什么样的信息。在这种情况下,可将函数编写成能够接受任意数量的键—值对——调用语句提供了多少就接受多少。

示例:
python3基础---函数

编写函数时,你可以以各种方式混合使用位置实参、关键字实参和任意数量的实参。

8 将函数存储在模块中

将函数存储在被称为模块 的独立文件中,再将模块导入 到主程序中。import 语句允许在当前运行的程序文件中使用模块中的代码。

python3基础---函数
python3基础---函数
导入模块示例:
python3基础---函数

导入模块时,尽量使用前两种方法。这能让代码更清晰,更容易阅读和理解。