如果用户在Python二叉树中输入了错误的搜索数据,则返回错误

如果用户在Python二叉树中输入了错误的搜索数据,则返回错误,python,Python,我试图将用户输入数据附加到现有树中,但我的代码似乎不起作用,因为当我再次搜索新数据时(我删掉了该部分),它丢失了。我真的是个新手,有人能帮我吗 class BinTreeNode(object): def __init__(self, value, value2): self.value=value self.value2=value2 self.left=None self.right=None def tree_

我试图将用户输入数据附加到现有树中,但我的代码似乎不起作用,因为当我再次搜索新数据时(我删掉了该部分),它丢失了。我真的是个新手,有人能帮我吗

class BinTreeNode(object):

    def __init__(self, value, value2):
        self.value=value
        self.value2=value2

        self.left=None
        self.right=None


def tree_insert( tree, item,value):
    if tree==None:
        tree=BinTreeNode(item, value)
    else:
        if(item < tree.value):
            if(tree.left==None):
                tree.left=BinTreeNode(item,value)
            else:
                return tree_insert(tree.left,item, value)
        else:
            if(tree.right==None):
                tree.right=BinTreeNode(item,value)
            else:
                return tree_insert(tree.right,item,value)
    return tree

def search(value,p):
    if p is None:
        return 1

    elif(p.val == value):
        print("You bought item no:",p.value,", the description",     p.value2 )
    else:
        if(p.val !=None):
            if(p.val < value):
                return search (value,p.right)
            if(p.val > value):
                return search (value,p.left)

t=tree_insert(None,13,3)
tree_insert(t,10,3)
tree_insert(t,5,3)
tree_insert(t,2,3)

option = int(input("Please enter code:"))
answer = search(option,tree)

while (answer == 1):
    print("You've entered a wrong option")
    option = int(input("Please enter code:"))
    answer = search(option,tree)
类BinTreeNode(对象):
定义初始值(自身、值、值2):
自我价值=价值
self.value2=value2
self.left=无
self.right=无
def tree_insert(树、项、值):
如果树==无:
tree=BinTreeNode(项,值)
其他:
如果(项目<树值):
如果(tree.left==无):
tree.left=BinTreeNode(项,值)
其他:
返回树\插入(树、左、项、值)
其他:
如果(tree.right==无):
tree.right=BinTreeNode(项,值)
其他:
返回树\插入(树、右、项、值)
回归树
def搜索(值,p):
如果p为无:
返回1
elif(p.val==值):
打印(“您购买的商品编号:”,p.value,”,说明,”,p.value2)
其他:
如果(p.val!=无):
如果(p.val<值):
返回搜索(值,右页)
如果(p.val>值):
返回搜索(值,p.left)
t=树插入(无,13,3)
树_插入(t,10,3)
树_插入(t,5,3)
树插入(t,2,3)
选项=int(输入(“请输入代码:”)
答案=搜索(选项,树)
而(答案=1):
打印(“您输入了错误的选项”)
选项=int(输入(“请输入代码:”)
答案=搜索(选项,树)

请修复缩进。很难看出什么是你班里的东西,什么是外面的。当我猜测并尝试运行代码时,行
answer=search(option,tree)
失败,因为未定义
tree
。二叉树通常每个节点只有一个值。我不知道你为什么有两个。此外,您还任意将它们混合在一起,例如,
if(item