问题描述
我从9月开始介绍Python课程,但我几乎没有跟上。这周的任务使我感到困惑。我得到了老师和https://jekyllrb.com/docs/configuration/front-matter-defaults/的帮助,所以我有了一些了解,但这并不是我所不能及的。我在一周内进行了许多更正,因此我的代码看上去比以前更好,但是我仍然不明白我在做什么错。
不是为n创建阶乘,而是将n作为用户的输入值显示。我尝试在不同的行上输入阶乘(n),但它只给我一个EOF错误。有人可以解释我在做什么错吗?我的信念是我需要调用阶乘函数,但是我似乎无法正确设置其格式。
def factorial(n):
if n==0:
return 1
else:
recurse = factorial(n-1)
result = n * recurse
return result
done=False
while not done:
n=input('Enter a Positive Integer \n>>>')
try:
n=int(n)
if n>=0:
done=True
except:
print('try again')
print('n is ',n)
解决方法
简单修复。
def factorial(n):
if n==0:
return 1
else:
recurse = factorial(n-1)
result = n * recurse
return result
done=False
while not done:
n=input('Enter a Positive Integer \n>>>')
try:
n=int(n)
if n>=0:
done=True
except:
print('try again')
print('n is ',factorial(n))
,
为了获得n的阶乘,您需要调用该函数。 例如:res = factorial(n)