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

python中的打印和返回有什么区别?,python,Python,我正在做作业,我被“打印”和“返回”弄糊涂了。 例如,当我要求生成一个返回(“a”、“e”、“I”、“o”、“u”)中所有字母的函数时,为什么当我只输入def函数(例如,所有字母(“你好,我的妻子”))时输出不能出来?但当我输入“打印字母”时,有一个输出?带有返回,您可以指定一个变量: def my_funct(x): return x+1 然后可以执行y=my_funct(5)y现在等于6 为了帮助描述它,将函数想象成一台机器(类似于它们在某些数学类中使用的)。通过插入变量(在本例中

我正在做作业,我被“打印”和“返回”弄糊涂了。


例如,当我要求生成一个返回(“a”、“e”、“I”、“o”、“u”)中所有字母的函数时,为什么当我只输入def函数(例如,所有字母(“你好,我的妻子”))时输出不能出来?但当我输入“打印字母”时,有一个输出?

带有
返回
,您可以指定一个变量:

def my_funct(x):
    return x+1
然后可以执行
y=my_funct(5)
y
现在等于6

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

但是,使用
打印
,该值仅显示在屏幕上

如果将功能更改为:

def my_funct(x):
    print(x+1)
然后执行
y=my_funct(x)
y
等于
None
,因为
print()
不返回任何内容


使用机器隐喻,您插入变量(再次,
x
),但它不是输出某些内容,而是显示它等于什么(再次,
x+1
)。但是,它不输出任何内容。

返回
将值返回到调用范围。
打印
(除非有人进行了一些猴子修补)将数据推送到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
在分配打印机的
结果时是
None
,因为存在隐式e> 对于没有显式返回值的任何函数,返回None

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

return
在为变量赋值时非常有用

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

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