如何修复SyntaxError:无法在Python上分配给文字

时间:2019-08-06 14:00:04

标签: python function factorial

我是Python的完整入门者,因此在学习Python函数的同时。

我正在尝试编写一个计算阶乘的函数。

但是我一直收到这个错误: SyntaxError:无法分配给文字

我尝试放置一个变量,但是没有任何效果,但是我知道,我只是一个初学者。非常感谢您的帮助。

def factorial(n):
    result = 1
    if(n==0 | n==1):
        return 1

    else:
        for 2 in n:
            result = n* factorial(n-1)
        return result

factorial(5)

2 个答案:

答案 0 :(得分:1)

仔细阅读循环,您的for循环就没有任何意义了。您正在寻找的就是这样

def factorial(n):
    result = 1
    if(n==0 | n==1):
        return 1

    else:
        for i in range(1, n):
            result = n* factorial(n-1)
        return result

答案 1 :(得分:0)

for 2 in n。这不是循环的工作方式。您正在为文字2分配某些您不能执行的操作。您可能想要类似for n in range(2):的东西 https://www.w3schools.com/python/python_for_loops.asp

if(n==0 | n==1)

|在Python中并不表示or,而是按位或。正确的语法是

if(n==0 or n==1)

https://wiki.python.org/moin/BitwiseOperators