下面的代码会在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'”错误。
答案 0 :(得分:2)
修改强>:
由于您修改了问题,因此您发布的代码是正确的。这个问题存在于别处。它只是在你看到它的时候解析并抛出错误。
<强>原始强>:
它位于fact -= 1\
行。 \
告诉它下一行实际上是当前行的一部分。所以它正在读这个:
fact -= 1 print Total
而不是
fact -= 1
print Total
答案 1 :(得分:2)
删除此行\
fact -= 1\
答案 2 :(得分:1)
摆脱这一行的\
:
fact -= 1\
\
表示行继续,这将引发语法错误
遵循的一条好规则:当出现令人困惑的语法错误时,请务必检查上一行