Python中返回和打印的区别是什么?

10 投票
5 回答
71688 浏览
提问于 2025-04-16 05:08

在Python中,我好像不太明白return这个功能。为什么要用它,而我直接打印出来不就行了吗?

def maximum(x, y):
    if x > y:
        print(x)
    elif x == y:
        print('The numbers are equal')
    else:
        print(y)

maximum(2, 3)

这段代码给我的是3。但是用return的话,它的效果也是一样的。

def maximum(x, y):
    if x > y:
        return x
    elif x == y:
        return 'The numbers are equal'
    else:
        return y

print(maximum(2, 3))

那么这两者之间有什么区别呢?

5 个回答

4

记住,交互式命令行并不是唯一可以调用方法的地方。方法也可以被其他方法调用,在这种情况下,print 不能用来在它们之间传递数据。

12

如果你需要保存打印出来的值,你会怎么做呢?可以看看文档里的详细解释,还有下面的内容:

>>> def ret():
    return 42

>>> def pri():
    print(42)


>>> answer = pri()
42
>>> print(answer)         # pri implicitly return None since it doesn't have return statement
None
>>> answer = ret()
>>> answer
42

这和其他语言里的return语句没有什么区别。

33

重点

返回(return)并不是一个函数,而是一种控制流程的结构,就像 ifelse 这样的结构。它的作用是让你在函数调用之间“带着数据走”。

详细解释

  • print:这个命令是把值输出给用户,显示成字符串。比如说 print(3) 会在屏幕上显示字符串 '3',但程序就会失去这个值。

  • return:这个命令是把值返回给程序。调用这个函数的地方就能得到实际的数据和数据类型(比如布尔值、整数等)。例如 return 3 会把值3放到调用这个函数的地方。

示例时间

def ret():
    return 3

def pri():
    print(3)

4 + ret() # ret() is replaced with the number 3 when the function ret returns
# >>> 7
4 + pri() # pri() prints 3 and implicitly returns None which can't be added
# >>> 3
# >>> TypeError cannot add int and NoneType

撰写回答