2013-04-16 32 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

非常感謝(: –

相關問題