语法无效,函数不接受返回而是抛出无效语法

时间:2014-01-17 21:09:17

标签: python syntax return

下面的代码会在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上作为输入崩溃,因为你的函数抛出了“不支持的操作数类型*:'NoneType'和'int'”错误。

3 个答案:

答案 0 :(得分:2)

修改

由于您修改了问题,因此您发布的代码是正确的。这个问题存在于别处。它只是在你看到它的时候解析并抛出错误。

<强>原始: 它位于fact -= 1\行。 \告诉它下一行实际上是当前行的一部分。所以它正在读这个:

  fact -= 1 print Total

而不是

  fact -= 1
  print Total

答案 1 :(得分:2)

删除此行\

末尾的fact -= 1\

答案 2 :(得分:1)

摆脱这一行的\

fact -= 1\

\表示行继续,这将引发语法错误

遵循的一条好规则:当出现令人困惑的语法错误时,请务必检查上一行