为什么python不返回None?

时间:2018-05-08 10:22:47

标签: python python-3.x

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

1 个答案:

答案 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