gpt4 book ai didi

python - 为什么我的 Python 递归函数返回 "none"而不是 "True"?

转载 作者:行者123 更新时间:2023-12-01 00:16:21 27 4
gpt4 key购买 nike

我创建了一个search函数应该在二叉树中找到一个值并返回 True如果找到该值并且 False如果不是。

树是正确的,我已经测试过了。

当我打印字符串 "Found" 时,不同的情况会起作用或"Not found" 。但是return True不起作用。

这是我的 Tree 类的代码:

class Tree(object):

def __init__(self):
self.fg = None
self.fd = None
self.data = None

def insert(self, data):
if self.data == None:
self.data = data

elif self.data > data:
if self.fg == None:
self.fg = Tree()
self.fg.insert(data)

elif self.data < data:
if self.fd == None:
self.fd = Tree()
self.fd.insert(data)

def search(self, data):
if self.data == None:
return False
elif self.data == data:
print("Found")
return True

if self.data > data:
if self.fg == None:
return False
else:
self.fg.search(data)

elif self.data < data:
if self.fd == None:
return False
else:
self.fd.search(data)

tree = Tree()

tree.insert(6)
tree.insert(3)
tree.insert(4)
tree.insert(5)

print(tree.search(6), "\n")
print(tree.search(7), "\n")
print(tree.search(3), "\n")
print(tree.search(4), "\n")
print(tree.search(5), "\n")

结果如下:

Found
True

Not found
False

Found
None

Found
None

Found
None

感谢您的帮助。

最佳答案

您应该返回递归调用的值

return self.fg.search(data)

关于python - 为什么我的 Python 递归函数返回 "none"而不是 "True"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59304076/

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