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

Chr*_*ris 9 python printing return function

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

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

maximum(2, 3)
Run Code Online (Sandbox Code Playgroud)

这段代码给了我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))
Run Code Online (Sandbox Code Playgroud)

那两者之间的区别是什么?对不起,这个巨大的菜鸟问题!

t3d*_*son 26

返回不是一个功能.它是一个控制流构造(就像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
Run Code Online (Sandbox Code Playgroud)


Sil*_*ost 11

如果您需要保存印刷值,您会怎么做?看看文档和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
Run Code Online (Sandbox Code Playgroud)

return与任何其他语言的陈述没有什么不同.