在 Python 中定义和使用函数

PythonBeginner
立即练习

介绍

在这个 Lab 中,你将学习如何在 Python 中定义和使用函数。函数对于组织代码和促进代码复用至关重要。你将从理解函数概念开始,探索 Python 的内置函数(built-in functions),学习如何使用参数调用它们并观察它们的输出。

在探索完内置函数之后,你将学习如何定义自己的简单函数。最后,你将练习调用这些用户自定义函数(user-defined functions)来执行它们包含的代码块,从而巩固你对 Python 中函数创建和使用的理解。

这是一个实验(Guided Lab),提供逐步指导来帮助你学习和实践。请仔细按照说明完成每个步骤,获得实际操作经验。根据历史数据,这是一个 初级 级别的实验,完成率为 100%。获得了学习者 100% 的好评率。

理解和使用内置函数

在这一步,我们将探索函数(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_numberrounded_pisorted_list)中,然后再将其打印出来。这是一种常见且实用的做法。

定义一个简单的函数

虽然内置函数功能强大,但你通常需要创建自己的函数来执行自定义任务。这被称为定义函数。

在 Python 中,你使用 def 关键字来定义一个函数。基本语法如下:

def function_name(parameters):
    """Docstring: 函数的可选描述。"""
    ## 要执行的代码(函数体)
    ## ...
    return value  ## 可选的返回语句
  • def: 启动函数定义的关键字。
  • function_name: 函数的描述性名称。
  • (parameters): 函数的输入变量。一个函数可以有零个或多个参数。
  • :: 冒号标记函数头的结束。
  • 缩进 (Indentation): 函数内部的代码行必须缩进(通常使用 4 个空格)。这是 Python 组织语句的方式。

让我们创建第一个函数。在 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 程序员的关键技能。