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