为了账号安全,请及时绑定邮箱和手机立即绑定

为什么不加if就会报错

# coding=utf-8

def sum1(n):

    return n+sum1(n-1)

print (sum(2))


正在回答

2 回答

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,希望对你有参考作用,你可以像我这样先做判断,就不会报错了

0 回复 有任何疑惑可以回复我~

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

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

0 回复 有任何疑惑可以回复我~
#1

young明

而且你的写法应该是 print(sum1(2))才是对的
2021-03-24 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Python3 入门教程(新版)
  • 参与学习       154079    人
  • 解答问题       1074    个

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

进入课程

为什么不加if就会报错

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信