Python自定义函数中return与print的区别及执行逻辑详解
本文详细解析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`提供的返回值。
总结
以上为个人经验分享,希望能为大家提供参考,也希望大家多多支持本站。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













