Python 基础知识教程-函数(Functions)简介

18年9月18日 · 王月成 4662 人阅读
函数是什么
函数是一组操作的集合,并赋予它一个名字。你已经使用过许多 Python 内置的函数,例如 string.title() 和 list.sort() 。我们也可以定义自己的函数,它们可以“教导” Python 作一些新的行为。
通用语法
一个函数通常如下所示:
这段代码并不能运行,但显示了函数的通常用法。
定义一个函数
- 使用关键字 def 告诉 Python 你将要定义一个函数。
- 给你的函数起一个名字。函数名应当能表明函数是干什么的。
- 给函数需要的数据起名称。
它们是变量名,而且只在函数里用。
这些名称被称为函数的参数(arguments)
- 确保函数的定义以冒号结束。
- 在函数内部,写下任意你想要的代码。
使用你的函数
- 函数名后跟圆括号调用函数。
- 在圆括号中,给出函数运行需要的数据。
- 函数中的参数可以是变量,例如 current_name 和 current_age,也可以是实际的数据,例如 'eric' 和 5。
示例
第一个例子
第一个简单的例子,我们实现一个道贺的程序。我们先实现一个不用函数的版本,尝试去理解函数的作用。如下所示:
上述代码有很多重复的地方,函数就是用来替代重复的代码,在需要的地方引用它。使用函数后的代码如下所示:
在初始代码中,每条被打印的语句中,除了名字其他部分都是相同的。当你看到这样的重复语句后,就可以使用函数使你的程序更有效率。
一个常见的错误
函数一定要在使用之前定义。否则就会引起错误。示例如下:
第一行先调用了函数,但是 Python 不知道如何运行这个函数。只有在调用它之前定义才能正确运行。
第二个例子
在我们介绍列表中的排序方法时,写了很多重复的代码。让我们先来看看不使用函数情况下的代码。如下所示:
接下来使用函数来实现相同的功能。代码如下所示:
这段代码就简洁的多了。我们想要显示列表中的学生名字并展示一条提示信息。给这个操作赋予一个名字 show_students() 。
这个函数需要两条信息来完成它的工作。学生列表和一条要展示的信息。在函数内部,打印要展示的信息并循环打印学生列表。
现在为止我们的程序变得相当简洁,我们只需要关注重复代码中不同的部分即可。程序的可读性也提高了。
使用函数的优点
通过这些例子,你可能已经体会到使用函数的好处:
- 在这个简单的例子中,我们节省了不少的工作量。在更大的程序中,将会节省更多的工作量。
- 当一个函数可以工作后,我们不必担心函数的代码。每次在程序中重复使用函数时,都是一次检验函数的机会。每次发现 bug 时,只需要修改函数代码而不必在每个重复的地方修改。
- 同理,在完善,增添代码功能时,只需要修改函数内部代码即可。
返回值
每个函数都可以返回一个值。返回值可以是当前函数主要功能外无足轻重的功能,也可以是函数的主要功能。下述代码通过数字返回相应的单词。
在上述代码中,输出的第一行是 None,这是一个逻辑错误。函数接受一个参数 0,这个变量不在函数 if 链的判断范围内,返回了一个 None。我们需要添加一个 else 来处理不在判断范围内的情况。如下所示:
如果你在函数中使用返回语句,谨记在碰到返回返回语句后函数会立即停止执行。例如,我们可以在函数的返回语句后添加一条语句,这条语句永远都不会被执行。如下所示:
想一想
我们只是简单的介绍一下函数。它还有更多的用法,接下来多多使用函数,体会函数的不同用法。想一想下面的问题:
- 如何给函数的参数赋初始值。
- 如何让函数接受不同数量的参数。
动手试一试
Greeter
- 写下一个函数,参数是一个人的名字,并打印出一条祝福的语句。
- 用你的函数祝福3个人。
- 将人名存储在列表中,并且用 for 循环调用函数。
Full Names
- 写下一个函数,参数包括姓和名字,并打印出一条包含全名的语句。
- 使用不同的参数,调用 3 次你的函数。
Addition Calculator
- 写下一个函数,包含两个数字类型的参数。计算参数的和并打印出参数和它们的和。
- 调用 3 次你的函数。
Return Calculator
- 修改 Addition Calculator 中的函数,返回参数的和。并在函数外打印出来。
Python3Turtle