Pyschools:写一个递归函数,从参数a到b返回一串数字

时间:2014-06-02 01:56:41

标签: python recursion

写一个递归函数numbersInbetween(start,end),它接收两个数字并返回一个公共分隔的字符串,其中包含两个数字之间的所有数字,包括两个数字。

我的尝试:

def numbersInbetween(a, b):
    if  b == 0:
        return "Invalid"
    if a == b:
        return '%d' % (a)
    else:
        return '%s,%s' % (a, numbersInbetween(a+1,b))

所有输入都会返回预期结果,但是pyschools会返回“私有测试用例失败”。

请你在这里指出我的错误,我尝试了很多变化但收效甚微。感谢

1 个答案:

答案 0 :(得分:2)

查看here ,您的问题似乎就在这里:

if b == 0:

如果输入b作为小于a的非零值:

...
  File "<stdin>", line 7, in numbersInbetween
  File "<stdin>", line 7, in numbersInbetween
  File "<stdin>", line 7, in numbersInbetween
RuntimeError: maximum recursion depth exceeded

因此,请将if b == 0更改为if b < a

def numbersInbetween(a, b):
    if b < a:
        return "Invalid"
    if a == b:
        return '%d' % (a)
    else:
        return '%s,%s' % (a, numbersInbetween(a+1,b))