有人可以在这里告诉我,代码中 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>
答案 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