2013-08-06 150 views
0

我試圖把它打印出來的代碼,但是當我在Python 2.7

使用print命令所以我非常瞭解如何解釋讀取並執行這個節目,我不斷收到錯誤。將「print s」在屏幕上看到結果的理想位置是什麼?非常感謝你。如何打印出結果:

n = raw_input('input an integer value to compute its factorial:\n') 
n = int(n) 

def f(n): 
    if n==0:      
     return 1     
    else: 
     m = f(n-1) 
     s = n * m 
     return s 
+3

什麼錯誤?你甚至沒有顯示試圖在這裏打印的代碼... – geoffspear

+0

這是正確的。我試圖(打印s),而不是打印f(..) – Quester

回答

3

從我的經驗,你可能想要的東西接近這個:

def f(n): 
    if n==0:      
     return 1     
    else: 
     m = f(n-1) 
     s = n * m 
     return s 

if __name__ == '__main__': 
    n = raw_input('input an integer value to compute its factorial:\n') 
    n = int(n) 
    result = f(n) 
    print result 
    # or alternatively for the last two lines, if you don't want to save the result 
    print f(n) 

這是這樣,當你剛剛從IDLE(或f直接執行這個腳本rom命令行)它運行if __name__塊,但否則它只是定義該功能。

+0

謝謝你。我只是想出了它。我需要打印該功能本身。 – Quester

+0

@Quester如果我的答案幫助你,我會非常感謝它,如果你點擊左邊答案分數下的選中標記。 –

0

如果你要打印的函數的返回值,而不僅僅是s,那麼你可以存儲返回值和打印:

n = raw_input('input an integer value to compute its factorial:\n') 
n = int(n) 

def f(n): 
    if n==0:      
     return 1     
    else: 
     m = f(n-1) 
     s = n * m 
     return s 

result = f(n) 
print result 
3

我希望移居的f的定義頂部,在您撥打raw_input之上。然後在最後,你可以叫fn和打印結果:

print f(n) 

如果你願意,你可以把結果保存在一個變量,雖然這裏沒有的優勢:

result = f(n) 
print result 
+1

有人可以解釋他們爲什麼downvoted這個答案? –