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