python中打印和返回有什么区别?

时间:2013-04-16 17:19:50

标签: python

我正在做作业,我对“打印”和“返回”感到困惑。

例如,当我要求创建一个返回(“a”,“e”,“i”,“o”,“u”)中所有字母的函数时,为什么输出时不会出现只是把我的def函数(例如all_letters(“你好我的妻子”)?但是当我输出“打印字母”时会有输出?

3 个答案:

答案 0 :(得分:4)

使用return,您可以分配给变量:

def my_funct(x):
    return x+1

然后你可以y = my_funct(5)y现在等于6。

为了帮助描述它,可以将函数视为一台机器(类似于它们在某些数学类中使用的函数)。通过插入变量(在本例中为x),函数输出(或returns)某些东西(在本例中为x+1)。变量是输入,return给出输出。

但是,对于print,该值只会显示在屏幕上。

如果您将功能更改为:

def my_funct(x):
    print(x+1)

然后y = my_funct(x)y等于None,因为print()不会返回任何内容。

使用机器比喻,你插入变量(再次,x),但不是输出某些内容,而是只显示它等于的内容(同样,x+1)。但是,它不会输出任何内容。

答案 1 :(得分:3)

return向调用范围返回一个值。 print(除非有人做了一些猴子补丁)将数据推送到stdout。随后可以从调用范围使用返回值,而打印的内容将被分派到操作系统,操作系统会相应地处理它。

>>> def printer(x):
...     print x * 2
...
>>> def returner(x):
...     return x * 2
...
>>> printer(2)
4
>>> y = printer(2)
4
>>> y is None
True
>>> returner(2)
4
>>> y = returner(2)
>>> y
4

交互式控制台对于说明这一点有点误导,因为它只打印了返回值的字符串表示,但上面示例中分配给y的值的差异是说明性的。分配y的结果时,Noneprinter,因为对于没有明确返回值的任何函数,存在隐式return None

答案 2 :(得分:2)

return是一个关键字,而print是一个函数:

当您想要为变量赋值时,

return非常有用。

print只允许您在命令提示符中打印一些文本:

def foo():
    return 2
bar = foo() # now bar == 2
print(bar) # prints 2