yangxinyu 发表于 2021-2-16 16:59:11

python阶乘

想问一下python中怎么实现阶乘,用下面的代码老是给我报错
def factorial(n):
        if n<0:
                return 'wuxiao'
        if n == 1 or n == 0:
                return 1
        return n*factorial(n-1)
        print(factorial(5))
print(factorial(5))

情绪z 发表于 2021-2-16 17:04:05

def factorial(n):
    if n < 0:
      return 'wuxiao'
    if n == 1 or n == 0:
      return 1
    return n * factorial(n - 1)


print(factorial(5))

昨非 发表于 2021-2-16 17:05:27

本帖最后由 昨非 于 2021-2-16 17:17 编辑

问题出在注释的第七行:
函数通过递归实现阶乘,函数内部不能有调用部分啊,肯定是第八行第七行重复了
不然的话,不就是层层套娃嘛{:10_245:}
def factorial(n):
      if n<0:
                return 'wuxiao'
      if n == 1 or n == 0:
                return 1
      return n*factorial(n-1)
      # print(factorial(5))#注释掉这一行就好了,这是调用部分不能写到函数内,这不骑驴找驴吗
print(factorial(5))
结果:
120
页: [1]
查看完整版本: python阶乘