class tree :
def __init__(self):
self.val=0
self.right=None
self.left=None
def create_tree():
x=input()
if x==-1:
return None
root=tree()
root.val=x
print(root)
print(root.val)
print(root.right)
print(root.left)
while(True):
print ("reach1")
root.left=create_tree()
root.right=create_tree()
print("reach2")
break
return root
def main():
root=tree()
root=create_tree()
main()
为什么在create_tree()中使用x == - 1时不返回None?
示例输出:
2 <__main__.tree object at 0x7f58cbf11128> 2 None None reach1
-1 <__main__.tree object at 0x7f58cbf11208>
-1 None None reach1
答案 0 :(得分:8)
为什么在create_tree()中使用x == - 1时不返回None?
因为input()
从stdin
输入返回字符串。
input
从输入中读取一行,将其转换为字符串并返回该行。
您可以使用type
运算符进行检查。
type_of = type(x)
>> string
解决方案是将您输入的内容与"-1"
if x == "-1":
return None
或只使用int
方法。
x = int(input())
if x == -1:
return None