嘿傢伙,所以我有一個問題,這是我的返回語句不執行。 這是我的sudo代碼。它搜索一棵樹來查看一個項目是否在樹中。返回語句不執行
def search(self, i):
if left child is None and right child is None
if self.data == i:
return True
else:
pass
elif self.data == i:
return True
else:
if left child exists:
return self.left.search(i)
if right child exists:
return self.right.search(i)
代碼似乎除了當self.data == i
,代碼不運行,即使 如果執行語句返回TRUE語句來工作。有人知道爲什麼嗎? 在此先感謝!
編輯:增加了自我參數。它支持在那裏,是一個TYPO ..
我插入數字3,8,2和1到樹中,然後搜索1.我添加了一個打印語句,如果離開的孩子是None,右邊的孩子是None:如果self.data == i:print('self.data == i')return True我在搜索1時添加了print語句,並且print語句打印出來,這意味着if語句被執行,但是, return True語句不執行
除非你提供一個用例,否則我們不能說出你的問題是什麼。我的傾向是,無論是「i」還是「self.data」都不是你認爲的那樣,所以當你不這麼認爲時,你的條件就是評估爲「假」。嘗試使'傳遞''返回False',而不是看你得到什麼。 – 2013-04-05 04:05:16
請提供一個[SSCCE](http://sscce.org) – 2013-04-05 04:09:17
嗯不,我插入數字3,8,2和1到樹中,然後搜索1. 如果離開孩子,我添加了打印語句 是None並且右邊的子項是None: if self.data == i: print('self.data == i') return True 我在搜索1時添加了print語句,並且print語句打印出了意味着if語句執行了 ,但是,返回True語句不執行。 – 2013-04-05 04:14:29