Python自定义函数中return与print的区别及执行逻辑详解

闻溪
闻溪
发布时间:2026-10-16| 7人浏览过
原创

本文详细解析Python自定义函数中return与print的使用差异。通过Jupyter Notebook实例说明,return用于指定函数返回值并终止代码块执行,而print仅输出结果且不返回任何值。文章还探讨了在try...finally结构中return与print的协同执行逻辑,帮助开发者准确掌握函数交互与参数传递的关键点。

首先,我们需要深入理解Python中`return`语句的核心作用。

以下所有演示代码均在Jupyter Notebook环境中运行。

在定义自定义函数时,

必须使用`return`语句来明确指定函数的返回值,即函数执行完毕后最终输出的结果。

具体示例如下:

def Add(x,y):
    z = x+y
    return z
def Ad(x,y):
   z = x+y
   return x

上述代码定义了两个函数,除名称不同外,唯一的区别在于`return`后返回的值。那么它们的实际运行结果会有何不同?

Add(1,2)

返回值 3

Ad(1,2)

返回值1

产生上述结果的原因在于:`Add`函数返回的是两个参数的和,而`Ad`函数返回的是第一个参数的值。因此,函数执行后的最终返回值不仅取决于内部代码块的运算,更关键地取决于`return`语句所指定的值。

当函数代码块执行到`return`语句时,函数会立即退出。即使`return`之后还有属于该自定义函数的其他代码,这些代码也不会被执行。

再举一个例子:

def Add_1(x,y):
   z = x+y
   return z
   print(x,y)

在前例基础上增加一行代码,旨在打印传入的参数值。我们观察其执行效果:

Add_1(1,2)

返回值3

你会发现传入的参数值并未被打印,因为代码执行到`return`语句时函数已终止,后续代码被跳过。

如果`return`之后仍有代码需要被执行,该如何处理?

可以将`return`语句置于`try...finally`语句块中。当`return`被执行后,程序会继续执行`finally`块中的代码。

同样通过示例说明:

def Add_2(x,y):
    try:
        z = x+y
        return z
    finally:
        print(x,y)

在上例基础上进行微调,查看运行结果:

(此处添加In[]和Out[]标识以便观察)

In[2]: Add_2(1,2)

返回结果

1 2 Out[2]: 3

很明显,`return`之后的代码确实被执行了!

如果不加`return`语句,结果会怎样?

若不添加`return`语句,函数将没有返回值。

具体示例如下:

def Add_3(x,y):
    x+y

这样定义的函数不会报错,也可以正常运行。我们查看调用函数的结果:

Add_3(1,2)

执行后,界面上不会显示任何结果。那么,不使用`return`是否就意味着无法看到函数的运行结果?

并非如此,使用`print`同样可以显示结果。请看以下示例:

def Add_4(x,y):
   print(x+y)

观察函数调用的结果:

Add_4(1,2)

返回值3

结果可以显示,但与其他`print`函数打印的内容一样,没有`Out[]`标识。

如果对上述描述仍有疑惑,我们来看一个容易让人混淆的问题。

在自定义函数中,`return`和`print`究竟有何区别?

两者最显著的区别在于显示值的性质。

直接展示图片,以便更直观地对比:

是否清楚看到了区别?虽然`return`和`print`都能显示交互结果,但若需将函数作为参数传入其他函数,则必须依赖`return`提供的返回值。

总结

以上为个人经验分享,希望能为大家提供参考,也希望大家多多支持本站。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。