[問題] 遞迴函式遇到的問題

看板Python作者 (阿東)時間5年前 (2019/09/04 11:56), 5年前編輯推噓1(101)
留言2則, 2人參與, 5年前最新討論串1/1
各位版友好, 今早在使用遞迴函式時遇到一個問題, 程式碼如下, def test(self): flag=True dataList=[a,b,c,d] for data in dataList: flag=self.process(data) if flag: print("pass") else: print("fail") def process(self,data): if exists(data): print("Exists.") return True elif 資料查找結束: print("Not exists.") return False else: 更新資料內容... self.process(data) 印出來的資料如下 Exist. pass Exist. pass Exist. pass Exist. fail 確認過資料都要能被找到,請問為什麼最後得到的flag是false? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.73.44.121 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1567569374.A.1C9.html

09/04 12:35, 5年前 , 1F
你確定程式照你想的那樣執行?
09/04 12:35, 1F
已解,最後的else沒有return,所以就算找到值也不會回true... ※ 編輯: Dong0129 (42.73.44.121 臺灣), 09/04/2019 13:18:08

09/10 23:11, 5年前 , 2F
If 後面如果是None也會被判斷成False
09/10 23:11, 2F
文章代碼(AID): #1TRpNU79 (Python)
文章代碼(AID): #1TRpNU79 (Python)