0

I'm doing my homework and I got confused between "print" and "return".

For example when I asked to make a function that return all the letters in ("a","e","i","o","u"), why is the out put cannot come out when I just put my def function (ex. all_letters("hello my wife") ? but when I put "print letters" there is an output?

4

3 回答 3

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)

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

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

于 2013-04-16T17:20:54.177 回答
3

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

>>> 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上面示例中分配的值的差异是说明性的。 yNone当分配结果时,printer因为return None对于没有显式返回值的任何函数都有一个隐式。

于 2013-04-16T17:21:20.077 回答
2

return is a keyword while print is a function:

return is useful when you want to assign a value to a variable.

print just allows you to print some text in the command prompt:

def foo():
    return 2
bar = foo() # now bar == 2
print(bar) # prints 2
于 2013-04-16T17:25:27.523 回答