2014-01-17 85 views
-1

下面的代碼在return Total行處拋出錯誤無效語法。我認爲我的while循環有一個問題,但我沒有看到它。我試圖用下面的代碼來計算階乘。因此,print factorial(4)部分將計算4 * 3 * 2 * 1並將24返回到控制檯。語法無效,函數將不接受返回,而是拋出無效語法

def factorial(x): 
    Total = int(x) 
    fact = int(x) - 1 
    while fact >= 1: 
     Total *= fact 
     fact -= 1\ 
    return Total 

print factorial(4) 

我也嘗試下面的代碼,以便它會print Total VS Return Total

def factorial(x): 
    Total = int(x) 
    fact = int(x) - 1 
    while fact >= 1: 
     Total *= fact 
     fact -= 1\ 
    print Total 

print factorial(4) 

當我使用1作爲輸入返回:1

你的功能墜毀輸入,因爲你的功能*拋出一個「不支持的操作數類型(S):‘NoneType’和‘INT’ 「錯誤。

fact -= 1\ 

\表示續行,這將拋出一個語法錯誤

一個很好的規律可循:

+0

那你爲什麼還要在擺脫了'''\'''字符的結束你的問題? – wnnmaw

+0

請發佈更多位於您所展示內容上方的代碼。 – wheaties

回答

2

編輯

由於您修改了您的問題,因此您發佈的代碼是正確的。這個問題在別處存在。它只是解析並將錯誤發送到你看到的地方。

原始: 它在行fact -= 1\\告訴它,下一行實際上是當前行的一部分。所以它的閱讀本:

fact -= 1 print Total 

代替

fact -= 1 
    print Total 
1

得到該行擺脫\的你總是在檢查前行得到一個令人困惑的語法錯誤

2

刪除\在該行fact -= 1\