为什么不加if就会报错

来源:9-4 Python递归函数

慕先生3265212

2021-03-20 23:40

# coding=utf-8

def sum1(n):

    return n+sum1(n-1)

print (sum(2))


写回答 关注

2回答

  • 慕斯卡8373086
    2022-03-08 11:44:34

    def sums (n):

        refult = 0

        if n > 0 and n <= 100:

            while n > 0 :

                refult = refult + n

                n -= 1

            return refult

        else:

            return '参数要在1-100之间'

    n1 = 99

    print(sums(n1))


    def fact(n):

        if n == 1:

            return 1

        elif n < 1:

            return '参数要在1-100之间'

        elif n <= 100:

            return n + fact(n-1)

        else: # n > 100 的情况

            return '参数要在1-100之间'

    n2 = 99

    print(fact(n2))


    我也是刚学python,希望对你有参考作用,你可以像我这样先做判断,就不会报错了

  • young明
    2021-03-24 22:18:47

    因为没有特殊处理 他还会一直执行下去 比如 sum1(-1)   sum1(-2) 无穷尽还怎么算呢

    报的错误也是 RuntimeError: maximum recursion depth exceeded 超出最大递归深度..

    young明

    而且你的写法应该是 print(sum1(2))才是对的

    2021-03-24 22:21:24

    共 1 条回复 >

Python3 入门教程(新版)

python3入门教程,让你快速入门并能编写简单的Python程序

154169 学习 · 1075 问题

查看课程

相似问题