Python 我试着打印出1!到10点!但是遇到了一个运行时错误

Python 我试着打印出1!到10点!但是遇到了一个运行时错误,python,python-2.7,runtime-error,Python,Python 2.7,Runtime Error,这是我的密码: def factR(n): if n == 1: return n return n * factR(n-1) for i in range (11): print factR(i) factR(n)函数工作正常。我已经测试过了。但是在我添加了最后两行之后,它返回了一个运行时错误。我可以知道原因吗?您没有考虑n等于0的情况,但是您的范围从0(到10)开始。因为0等于1,您只需更改: if n == 1: return n 致: 您没有考虑n等于0

这是我的密码:

def factR(n):
  if n == 1:
    return n
  return n * factR(n-1)

for i in range (11):
  print factR(i)

factR(n)函数工作正常。我已经测试过了。但是在我添加了最后两行之后,它返回了一个运行时错误。我可以知道原因吗?

您没有考虑
n
等于
0
的情况,但是您的范围从0(到10)开始。因为
0
等于
1
,您只需更改:

if n == 1:
    return n
致:


您没有考虑
n
等于
0
的情况,但是您的范围从0(到10)开始。因为
0
等于
1
,您只需更改:

if n == 1:
    return n
致:


您的代码不适用于
n=0
,而是无限递归<代码>范围(11)适用于从0到10的i。

您的代码不适用于
n=0
,而是无限递归<代码>范围(11)适用于从0到10的i。

以防您不需要
0,只需将
范围(11)
替换为
范围(1,11)
。否则,请按照其他用户的上述建议进行操作。

以防您不希望
0,只需将
范围(11)
替换为
范围(1,11)
。否则,只需按照其他用户的上述建议进行操作。

在打印事实(i)
之前需要atab缩进吗?您的代码看起来不正确。你能修好吗?@lucumt修好了。谢谢提醒。@NikosVitaTopiko已修复。感谢您的提醒。未修复,仍然无效在打印事实(i)
之前需要或缩进?您的代码看起来不正确。你能修好吗?@lucumt修好了。谢谢提醒。@NikosVitaTopiko已修复。谢谢提醒。未修复,仍然无效
1
1
2
6
24
120
720
5040
40320
362880
3628800