【发布时间】:2022-10-24 05:13:16
【问题描述】:
我使用递归循环来查找由一个字母变化形成的单词之间的路径。例如:
人-->切割
男人 能够 猫 切
递归函数使用 while 查看单词的单字母邻居,并找到与目标单词最相似的邻居。然后使用这个词,它会更深,达到比起始词和目标词之间的字母差多两个的深度。 (这对于大多数情况来说似乎就足够了,尽管证明这是另一回事)
问题是我的递归函数给我带来了麻烦。为了节省您阅读我制作的所有类和函数的时间,我创建了一个产生相同错误的精简版本。
def recurse(c):
try:
while c>0:
print(c)
c-=1
if c==5:
raise StopIteration
recurse(c-1)
except StopIteration:
print("We found the word. Stop the recursion.")
recurse(12)
如果您运行此代码,则会多次引发异常,并且递归不会停止。我在这里的另一篇文章中阅读了使用异常来停止其轨道中的递归的这种方法,但使用情况有点不同。
我是否错误地实施了这一点?
【问题讨论】:
标签: python recursion exception