2013-04-16 31 views
1

我正在做作业,我在“打印”和“返回”之间感到困惑。
python中的print和return有什么区别?

例如,当我要求创建一个返回所有字母(“a”,“e”,“i”,“o”,“u”)的函数时,为什么输出不能出来。?我只是把我的高清功能(例如all_letters(“你好我的妻子”),但是当我把“印刷体”有一个输出

回答

4

随着return,你可以分配给一个变量:

def my_funct(x): 
    return x+1 

然后,您可以做y = my_funct(5)y现在等于6.

要他lp描述它,认为一个函数是一台机器(类似于他们在一些数学课程中使用的)。通过插入变量(在这种情况下,x),函数输出(或returns)(在这种情况下,x+1)。变量是输入,return给出输出。

但是,使用print时,该值仅显示在屏幕上。

如果更改的功能:

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

然后做y = my_funct(x)y等于None,因为print()不返回任何东西。

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

+1

OK!谢谢.. –

3

return将值返回给调用范围。 print(除非有人做了一些猴子修补)将数据推送到标准输出。随后可以从调用范围使用返回的值,而将打印的内容分派给OS并由OS相应处理。

>>> 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当分配printer的结果时为None,因为对于没有显式返回值的任何函数存在隐式return None

2

return是一个关键字,而print是一个功能:当你想赋值给变量

return是非常有用的。

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

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

非常感谢(: –

相关问题