if和if not python之间的区别

时间:2017-05-12 19:06:24

标签: python

有人可以在这里告诉我,代码中 if if if 之间的确切区别。

def postordertraversse(self,top):

       m=[]
       if(top):            
        if not self.postordertraversse(top.left):
         m.append(top.root)
         top_most=m.pop(0)

conv=createlist();
conv.postordertraversse(conv.top)

我能理解的是,如果顶级意味着if top对象实例存在,那么移动到块内并检查if not直到top.left不为null继续追加。< / p>

3 个答案:

答案 0 :(得分:3)

if x:表示&#34;如果x是真实的&#34;。

if not x:表示&#34;如果x为falsey&#34;。

某些内容是 truthy 还是 falsey 取决于它是什么类型的对象。

对于数字,0是假的,所有其他值都是真的。

对于布尔值,True是真实的,False是假的(显然!)

对于集合(列表,元组,字典,字符串等),空的是假的,非空的是真的。

因此,在您的示例代码中,两个if语句说:

  

如果top是真的:

     

如果self.postordertraversse(top.left)的结果是假的:

答案 1 :(得分:0)

不是在python中就像在其他编程语言中的否定一样。

答案 2 :(得分:0)

'not'语句只是转换进一步的表达式。例如:

not True - False
not False - True