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

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

本文详细解析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 相关产品和应用

全部下载

专题列表