介绍
在这个实验中,你将学习如何在 Python 中检查一个函数是否返回 None。本实验会引导你创建一个简单的 Python 脚本,其中包含一个返回两个数字之和的函数,从而帮助你理解函数的返回值。然后,你将执行该脚本并观察输出结果。
接下来,实验会修改函数,使其返回不同的数据类型,最后聚焦于函数可能不会显式返回值,从而返回 None 的场景。你将学习如何捕获函数的返回值,然后使用 is 运算符检查该值是否为 None。
了解函数返回值
在这一步中,你将了解 Python 中的函数返回值。函数是执行特定任务的可重复使用的代码块。通常,你会希望函数在完成工作后返回一个结果,这个结果就称为返回值。
让我们从创建一个简单的 Python 脚本开始,该脚本定义一个带有返回值的函数。
在 LabEx 环境中打开 VS Code 编辑器。
在
~/project目录下创建一个名为calculate.py的新文件。~/project/calculate.py将以下代码添加到
calculate.py中:def add(x, y): """This function adds two numbers and returns the result.""" sum = x + y return sum ## Call the function and print the returned value result = add(5, 3) print(result)在这段代码中:
- 我们定义了一个名为
add的函数,它接受两个参数x和y。 - 在函数内部,我们计算
x和y的和,并将其存储在一个名为sum的变量中。 return sum语句指定函数在被调用时应返回sum的值。- 在函数外部,我们使用参数
5和3调用add函数,并将返回的值存储在一个名为result的变量中。 - 最后,我们使用
print()函数显示result的值。
- 我们定义了一个名为
保存
calculate.py文件。在 WebIDE 中打开一个终端。
使用以下命令运行脚本:
python calculate.py你应该会看到以下输出:
8这个输出表明
add函数正确计算了 5 和 3 的和,并返回了值 8,然后该值被打印到控制台。
现在,让我们修改函数以返回不同类型的值,例如字符串。
在 VS Code 中打开
calculate.py文件。将代码修改为以下内容:
def greet(name): """This function returns a greeting message.""" message = "Hello, " + name + "!" return message ## Call the function and print the returned value greeting = greet("LabEx User") print(greeting)在这段代码中:
- 我们定义了一个名为
greet的函数,它接受一个参数name。 - 在函数内部,我们通过连接字符串 "Hello, "、
name参数的值和字符串 "!" 来创建一个问候消息。 return message语句指定函数应返回问候消息。- 在函数外部,我们使用参数
"LabEx User"调用greet函数,并将返回的值存储在一个名为greeting的变量中。 - 最后,我们使用
print()函数显示greeting的值。
- 我们定义了一个名为
保存
calculate.py文件。再次使用以下命令运行脚本:
python calculate.py你应该会看到以下输出:
Hello, LabEx User!这个输出表明
greet函数正确创建了一个问候消息并返回了它,然后该消息被打印到控制台。
捕获返回值
在上一步中,你学习了如何定义返回值的函数。现在,你将学习如何在程序中捕获并使用这些返回值。捕获返回值意味着将函数返回的值存储在一个变量中,以便后续使用。
让我们继续使用你在上一步中创建的 calculate.py 文件。我们将修改脚本以执行更多操作并捕获返回值。
在 VS Code 中打开
calculate.py文件。将代码修改为以下内容:
def add(x, y): """This function adds two numbers and returns the result.""" sum = x + y return sum def subtract(x, y): """This function subtracts two numbers and returns the result.""" difference = x - y return difference ## Call the functions and capture the return values num1 = 10 num2 = 5 sum_result = add(num1, num2) print("The sum of", num1, "and", num2, "is:", sum_result) difference_result = subtract(num1, num2) print("The difference between", num1, "and", num2, "is:", difference_result)在这段代码中:
- 我们定义了两个函数:
add和subtract。 - 我们使用参数
num1和num2调用add函数,并将返回的值存储在一个名为sum_result的变量中。 - 我们使用参数
num1和num2调用subtract函数,并将返回的值存储在一个名为difference_result的变量中。 - 我们使用
print()函数显示sum_result和difference_result的值,并附带描述性文本。
- 我们定义了两个函数:
保存
calculate.py文件。使用以下命令运行脚本:
python calculate.py你应该会看到以下输出:
The sum of 10 and 5 is: 15 The difference between 10 and 5 is: 5这个输出表明我们成功捕获了
add和subtract函数的返回值,并在程序中使用了它们。
现在,让我们创建一个更复杂的示例,其中我们将一个函数的返回值用作另一个函数的参数。
在 VS Code 中打开
calculate.py文件。将代码修改为以下内容:
def add(x, y): """This function adds two numbers and returns the result.""" sum = x + y return sum def multiply(x, y): """This function multiplies two numbers and returns the result.""" product = x * y return product ## Call the functions and capture the return values num1 = 5 num2 = 3 sum_result = add(num1, num2) product_result = multiply(sum_result, 2) ## Use the return value of add as an argument to multiply print("The sum of", num1, "and", num2, "is:", sum_result) print("The product of the sum and 2 is:", product_result)在这段代码中:
- 我们定义了两个函数:
add和multiply。 - 我们使用参数
num1和num2调用add函数,并将返回的值存储在一个名为sum_result的变量中。 - 我们使用参数
sum_result和2调用multiply函数。这展示了如何将add函数的返回值用作multiply函数的输入。我们将返回的值存储在一个名为product_result的变量中。 - 我们使用
print()函数显示sum_result和product_result的值,并附带描述性文本。
- 我们定义了两个函数:
保存
calculate.py文件。使用以下命令运行脚本:
python calculate.py你应该会看到以下输出:
The sum of 5 and 3 is: 8 The product of the sum and 2 is: 16这个输出表明我们成功地将一个函数的返回值用作另一个函数的参数,展示了函数返回值的强大和灵活性。
检查返回值是否为 None
在某些情况下,函数可能并不总是返回有意义的值。在这种情况下,它可以返回 None。None 是 Python 中的一个特殊值,表示没有值。在使用函数的返回值之前,检查函数是否返回 None 很重要,以避免出现错误。
让我们修改 calculate.py 文件,使其包含一个可能返回 None 的函数。
在 VS Code 中打开
calculate.py文件。将代码修改为以下内容:
def divide(x, y): """This function divides x by y and returns the result. If y is 0, it returns None to avoid division by zero errors. """ if y == 0: return None else: return x / y ## Call the function and check if the return value is None numerator = 10 denominator = 0 result = divide(numerator, denominator) if result is None: print("Cannot divide by zero!") else: print("The result of", numerator, "/", denominator, "is:", result) denominator = 2 result = divide(numerator, denominator) if result is None: print("Cannot divide by zero!") else: print("The result of", numerator, "/", denominator, "is:", result)在这段代码中:
- 我们定义了一个名为
divide的函数,它接受两个参数x和y。 - 在函数内部,我们检查
y是否等于 0。如果是,则返回None以避免除零错误。 - 如果
y不为 0,我们计算x / y的结果并返回。 - 在函数外部,我们使用分母为 0 调用
divide函数。 - 我们使用
is运算符检查返回值是否为None。 - 如果返回值为
None,我们打印一条错误消息。 - 否则,我们打印除法的结果。
- 然后,我们使用有效的分母再次调用
divide函数并打印结果。
- 我们定义了一个名为
保存
calculate.py文件。使用以下命令运行脚本:
python calculate.py你应该会看到以下输出:
Cannot divide by zero! The result of 10 / 2 is: 5.0这个输出表明,程序正确处理了分母为 0 的情况,并打印了适当的错误消息。它还表明,当分母不为 0 时,程序正确计算并打印了结果。
使用 is 运算符检查一个值是否为 None 很重要,因为 None 在 Python 中是一个单例对象。这意味着在整个程序中只有一个 None 实例。使用 == 运算符可能并不总是能正确工作,因为它比较的是对象的值,而不是对象本身。
总结
在本次实验中,你学习了 Python 中的函数返回值。你创建了一个名为 add 的函数,它接受两个参数,计算它们的和并返回结果。然后你调用了该函数,将返回值存储在一个变量中,并将其打印到控制台。
本次实验展示了函数如何返回不同类型的值,例如整数。这使得函数能够执行计算或操作,并将结果返回给调用代码以供进一步使用。



