2015-04-30 113 views
0

我一直在通過Codecademy的Python課程,我目前被困在函數章節的6/19。我設法根據說明編寫代碼,但我決定稍微修改一下。這是最初的代碼中,我寫道:無法打印結果

def cube(number): 
    return number**3 
def by_three(number): 
    if number % 3 == 0: 
     return cube(number) 
    else: 
     return False 

不過,我希望它按照我會在下面的括號內輸入數字打印出結果。所以這是我寫的:

def cube(number): 
    return number**3 
def by_three(number): 
    if number % 3 == 0: 
     return cube(number) 
     print cube(number) 
    else: 
     return False 
     print "False" 
cube(5) 

我沒有得到任何錯誤,但我沒有得到我想要的任何打印。但是,當我把代碼放在另一個Python編輯器中時,我在第6行出現語法錯誤。

我在這裏丟失了什麼?

+2

語法錯誤幾乎肯定是由您使用Python 3引起的。請參閱[使用Python 3打印時的語法錯誤](http://stackoverflow.com/q/826948)和[什麼是「SyntaxError:調用時缺少括號到'打印'「是Python的意思?](http://stackoverflow.com/q/25445439) –

回答

3

print報表永遠不會有兩個原因執行:

  • 他們遵循return語句。 return在該點退出功能,並且函數體中的任何其他語句都將被忽略,因爲它們永遠不會到達。

  • 您可以撥打cube()功能,而不是by_three()功能。

移動你print聲明之前return線,並要求他正確的函數:

def by_three(number): 
    if number % 3 == 0: 
     print cube(number) 
     return cube(number) 
    else: 
     print "False" 
     return False 

by_three(5) 

,可隨時更換print線,print()函數調用,使代碼工作在Python 3翻譯。

+0

哇,這很快。謝謝一堆! – Blitva