回归和python中的打印之间的区别?

时间:2010-10-07 12:06:27

标签: python function printing return

在python中我似乎没有理解返回函数。为什么在我打印时使用它?

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 个答案:

答案 0 :(得分:23)

The Point

返回不是一个功能。它是一个控制流构造(如if else构造)。这是让你“在函数调用之间随身携带数据”的原因。

细分

  • print:将用户的值作为输出字符串。 print(3)会在屏幕上显示一个字符串'3'供用户查看。该计划将失去价值。

  • return:为程序提供值。然后函数的调用者具有实际的数据和数据类型(bool,int等等)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

答案 1 :(得分:10)

如果您需要保存打印价值,您会怎么做? Have a look at good explanation in docs和cf。:

>>> 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语句没有区别。

答案 2 :(得分:4)

对于更复杂的计算,您需要返回中间值。例如:

print minimum(3, maximum(4, 6))

在这种情况下,您无法maximum打印其结果。

答案 3 :(得分:4)

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

答案 4 :(得分:0)

老实说,这取决于你需要做什么功能。如果函数规范声明它将打印出最大术语,那么你所拥有的就好了。对于这样的方法通常会发生的是该方法应该返回更大的实际值。在它们相同的情况下,返回哪个值无关紧要。