如何修复语法错误:can';在Python上,t赋值给literal

如何修复语法错误:can';在Python上,t赋值给literal,python,function,factorial,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* factor

我是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)

仔细阅读循环,你的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

用于2英寸n
。循环不是这样工作的。您正在为文本
2
分配一些您无法执行的操作。对于范围(2)中的n,您可能需要类似的

|
在Python中并不意味着
,它是按位或。正确的语法是

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

这不是真正的问题though@Skirrebattie我重读了一遍,意识到这里真正的问题是你不能用
表示n中的2:
你可以用
表示n中的x:
,因为2是整数,不能赋值为变量。
表示你想做
2=next(iter\n)
(等等)。
if(n==0 or n==1)