gpt4 book ai didi

python - 突破递归函数?

转载 作者:太空狗 更新时间:2023-10-29 18:20:39 25 4
gpt4 key购买 nike

我想知道如何跳出主函数的递归循环。我正在尝试做一个简单的回文练习。该函数应该为 "redivider" 返回 True,但是 return True 被传递给 is_pal() 并且函数没有中断。除了向 is_pal 添加第二个变量来跟踪 True/False,跳出此递归循环的正确方法是什么?

def first(word):
return word[0]

def last(word):
return word[-1]

def middle(word):
return word[1:-1]

def is_pal(str):
if len(str) == 1:
return True

if first(str) == last(str) and len(str) > 1:
is_pal(middle(str))

print is_pal("redivider")

最佳答案

在 Python 中中断递归函数的一种方法是抛出异常并在顶层捕获它。有些人会说这不是考虑递归的正确方法,但它完成了工作。此外,如果任务是识别数组/数组的数组/ndarray 等中的“问题”元素,中断技术会很方便,因为它会在识别出全局解决方案后停止算法继续。

def solve_problem(lst):
def solve_rec(l):
'''has impl. that may throw an exception '''
try:
solve_rec(lst)
return True
except:
return False

关于python - 突破递归函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10544513/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com