写一个递归函数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会返回“私有测试用例失败”。
请你在这里指出我的错误,我尝试了很多变化但收效甚微。感谢
答案 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))