在Pyschool递归练习中,有一个问题是打印两个give参数(包括那些参数)之间的数字。。我在递归方面很弱,但经过一定的尝试,我做到了。。但是它仍然抛出错误,尽管预期结果和返回的结果完全相同。。在
def numbersInbetween(a, b):
if b == 0:
return "Invalid"
if a == b:
return a
else:
return str(a)+ "," + str(numbersInbetween(a+1, b))
输出图像文件:
我甚至尝试在第二条if
语句中对输出进行字符串格式设置,但这只会引发一个错误,如“检查代码中的无限循环”。在
如果b==0,则将行改为ifb<;0或b==0
当
a == b
时返回a
,而不是str(a)
。测试人员需要一个字符串,而您给了它一个整数。在您可能还想测试
b
是否小于b
,否则您可能会无休止地递归(好吧,直到达到递归极限):如果};在这种情况下,当你增加}。在
b = 0
,只要a
小于或等于b
,函数仍将工作。numbersInbetween(5, 0)
返回"Invalid"
,不是因为b
是0
,而是因为b
小于{a
时,你永远不会到达{确保函数始终返回字符串实际上会稍微简化代码:
^{pr2}$相关问题 更多 >
编程相关推荐