介绍
在这个 Lab 中,你将学习如何在 Python 中定义和使用函数。函数对于组织代码和促进代码复用至关重要。你将从理解函数概念开始,探索 Python 的内置函数(built-in functions),学习如何使用参数调用它们并观察它们的输出。
在探索完内置函数之后,你将学习如何定义自己的简单函数。最后,你将练习调用这些用户自定义函数(user-defined functions)来执行它们包含的代码块,从而巩固你对 Python 中函数创建和使用的理解。
在这个 Lab 中,你将学习如何在 Python 中定义和使用函数。函数对于组织代码和促进代码复用至关重要。你将从理解函数概念开始,探索 Python 的内置函数(built-in functions),学习如何使用参数调用它们并观察它们的输出。
在探索完内置函数之后,你将学习如何定义自己的简单函数。最后,你将练习调用这些用户自定义函数(user-defined functions)来执行它们包含的代码块,从而巩固你对 Python 中函数创建和使用的理解。
在这一步,我们将探索函数(functions)的概念,并学习如何使用 Python 的内置函数(built-in functions)。函数是一段可重用的代码块,用于执行特定的操作。Python 提供了许多现成的内置函数供你使用,例如 print()、len() 和 sum()。
让我们通过编写一个 Python 脚本来看看其中一些函数是如何工作的。
首先,在左侧的 WebIDE 文件浏览器中找到 builtin_functions.py 文件。这个文件已经为你预先创建在 ~/project 目录下。双击该文件在编辑器中打开它。
现在,将以下 Python 代码添加到 builtin_functions.py 文件中。这段代码演示了如何调用几个内置函数。
## 使用 print() 函数显示输出
print("Hello, Python Functions!")
## 使用 len() 函数获取字符串的长度
message = "Hello World"
print(len(message))
## 使用 sum() 函数对列表中的数字求和
numbers = [1, 2, 3, 4, 5]
total = sum(numbers)
print(total)
编写完代码后,按 Ctrl+S 保存文件。
要运行脚本,请在 WebIDE 中打开集成终端(如果尚未打开,请转到顶部菜单并选择 Terminal > New Terminal)。然后,执行以下命令:
python ~/project/builtin_functions.py
你将在终端中看到每次调用 print() 产生的输出。
Hello, Python Functions!
11
15
此输出显示了调用内置函数的结果:print() 显示文本,len() 返回字符串中的字符数,而 sum() 计算列表中所有元素的总和。
函数通常需要输入数据来进行处理。这些数据作为参数(也称为实参,arguments)传递给函数。处理完毕后,函数可以返回一个结果,这被称为返回值(return value)。
让我们扩展 builtin_functions.py 脚本,以探索接受参数的函数,并了解我们如何使用它们的返回值。
再次在 WebIDE 编辑器中打开 builtin_functions.py 文件。将以下代码添加到文件末尾:
## 使用 max() 函数处理多个数字参数
largest_number = max(10, 25, 15)
print(largest_number)
## 使用 round() 函数处理两个参数
pi_approx = 3.14159
rounded_pi = round(pi_approx, 2) ## 四舍五入到小数点后 2 位
print(rounded_pi)
## 使用 sorted() 函数处理列表参数
unsorted_list = ['cherry', 'apple', 'banana']
sorted_list = sorted(unsorted_list)
print(sorted_list)
保存对文件的更改(Ctrl+S)。
现在,从终端运行更新后的脚本:
python ~/project/builtin_functions.py
终端将显示原始代码和新代码的输出。
Hello, Python Functions!
11
15
25
3.14
['apple', 'banana', 'cherry']
我们来回顾一下新的输出:
max(10, 25, 15) 接受三个数字作为参数,并返回其中最大的一个,即 25。round(pi_approx, 2) 接受一个数字和要保留的小数位数作为参数。它返回四舍五入后的值,即 3.14。sorted(unsorted_list) 接受一个列表作为参数,并返回一个元素按升序排列的新列表。在每种情况下,我们都将函数的返回值存储在一个变量(largest_number、rounded_pi、sorted_list)中,然后再将其打印出来。这是一种常见且实用的做法。
虽然内置函数功能强大,但你通常需要创建自己的函数来执行自定义任务。这被称为定义函数。
在 Python 中,你使用 def 关键字来定义一个函数。基本语法如下:
def function_name(parameters):
"""Docstring: 函数的可选描述。"""
## 要执行的代码(函数体)
## ...
return value ## 可选的返回语句
def: 启动函数定义的关键字。function_name: 函数的描述性名称。(parameters): 函数的输入变量。一个函数可以有零个或多个参数。:: 冒号标记函数头的结束。让我们创建第一个函数。在 WebIDE 文件浏览器中,找到并打开 my_functions.py 文件。
将以下代码添加到 my_functions.py 中,以定义一个打印问候语的函数:
## 定义一个名为 'greet' 的简单函数
def greet():
"""This function prints a simple greeting message."""
print("Hello from a user-defined function!")
保存文件。
至此,你已成功定义了一个名为 greet 的函数。但是,如果你运行此脚本,将不会发生任何事情。定义函数只是告诉 Python 该函数的作用;它实际上不会执行函数内部的代码。要执行函数代码,你需要调用它,这将在下一步介绍。
定义函数后,你需要调用它来执行其代码。调用函数很简单:你只需输入其名称,后跟圆括号 () 即可。
让我们调用在上一步中定义的 greet 函数。
在 WebIDE 编辑器中打开 my_functions.py 文件。在函数定义之后添加一行代码来调用该函数。
## 定义一个名为 'greet' 的简单函数
def greet():
"""This function prints a simple greeting message."""
print("Hello from a user-defined function!")
## 调用 greet 函数以执行其代码
print("Calling the function now...")
greet()
保存文件。重要的是函数调用 greet() 出现在 def greet(): 块之后。Python 从上到下读取文件,因此你必须先定义函数,然后才能调用它。
现在,从终端运行脚本:
python ~/project/my_functions.py
你将看到输出打印到控制台:
Calling the function now...
Hello from a user-defined function!
函数最大的优势在于可重用性。你可以多次调用同一个函数,而无需重写其代码。让我们再次调用 greet()。修改 my_functions.py 使其如下所示:
## Define a simple function named 'greet'
def greet():
"""This function prints a simple greeting message."""
print("Hello from a user-defined function!")
## Call the greet function multiple times
print("Calling the function...")
greet()
print("Calling it again...")
greet()
保存文件并再次运行它:
python ~/project/my_functions.py
输出现在显示该函数被执行了两次:
Calling the function...
Hello from a user-defined function!
Calling it again...
Hello from a user-defined function!
这展示了函数如何帮助你编写更清晰、更有条理且可重用的代码。
在这个实验中,你学习了 Python 中函数的基础知识。你首先探索了 Python 的内置函数,例如 print()、len() 和 sum(),并练习在脚本中调用它们。然后,你通过 max()、round() 和 sorted() 等示例,深入研究了函数的工作原理,包括传递参数和使用它们的返回值。
最后,你学习了使用 def 关键字定义自己的自定义函数的语法,并练习调用用户定义的函数来执行其代码。这个实验为你创建模块化和可重用的代码奠定了坚实的基础,这是任何 Python 程序员的关键技能。