请解释一下,我听不懂 我尝试过以下代码:
def reverse(string):
if len(string) == 0:
return string
else:
return reverse(string[0:])
st = str(input("Enter the string to be reversed: "))
print(reverse(st))
以上代码给出的错误如下:
Enter the string to be reversed: samiksha
Traceback (most recent call last):
File "C:\Users\samiksha warang\Desktop\python\lab exps\exp3.py", line 40, in <module>
print(reverse(st))
File "C:\Users\samiksha warang\Desktop\python\lab exps\exp3.py", line 38, in reverse
return reverse(string[0:])
File "C:\Users\samiksha warang\Desktop\python\lab exps\exp3.py", line 38, in reverse
return reverse(string[0:])
File "C:\Users\samiksha warang\Desktop\python\lab exps\exp3.py", line 38, in reverse
return reverse(string[0:])
[Previous line repeated 1021 more times]
File "C:\Users\samiksha warang\Desktop\python\lab exps\exp3.py", line 35, in reverse
if len(string) == 0:
RecursionError: maximum recursion depth exceeded while calling a Python object
每个递归调用只是重复上一个调用:您并没有将任务缩减为更小的任务。因此,您有一个无限递归
考虑倒换字符串“abc”。在有效的形式中,递归步骤是这将任务从3字符字符串减少到2字符字符串。下一个递归将是
。。。当与父调用结合时,最终将返回“cba”
失败版本的递归步骤为
简言之,它使用完全相同的输入调用自己。因此,每次调用都会得到相同的(缺少)处理。输入字符串永远不会到达基本大小写
相关问题 更多 >
编程相关推荐