亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么我的布爾值在 while 循環中沒有改變?

為什么我的布爾值在 while 循環中沒有改變?

慕妹3146593 2023-09-12 16:46:59
我的算法書有一個用不同方法在 Python 上實現鏈表的方法。這是remove方法,但我不完全理解while循環。這個實現依賴于Node之前定義的一個類,該類具有 、 、 等方法。get.data()列表get.next()本身set_next()是一個名為 的類UnorderedList。self.head指列表中的第一項。此方法的思想remove是遍歷列表,直到找到要刪除的項目。我們創建 acurrent和 aprevious來跟蹤我們正在查看的當前項目和之前的項目。我的問題與 while 循環有關。我們設置的found目的False是當我們找到我們正在尋找的項目時更改它。但是,當我們說 時,while 循環不會改變foundto的值嗎?Truenot found我知道這是一個簡單的問題,但我很難理解這個 while 循環為什么以及如何工作,因為在我的腦海中not通常使布爾值在其范圍內與它的實際情況相反。有人可以向我解釋一下嗎?順便說一句,我不需要對當前代碼進行任何解釋或改進,這是書中的一個示例,這對我來說都很有意義,我只是想理解那部分。def remove(self, item): current = self.head previous = None found = False while not found:      if current.get_data() == item:           found = True      else:           previous = current           current = current.get_next() if previous == None:      self.head = current.get_next() else:      previous.set_next(current.get_next())
查看完整描述

2 回答

?
LEATH

TA貢獻1936條經驗 獲得超7個贊

所以看來我錯過了 while 循環試圖做的事情的一部分。事實上,saynot found意味著表達式的計算結果為True,但在這種情況下,這不會停止循環。它完全按照我們想要的方式執行,它繼續運行循環。一旦找到我們正在尋找的項目,我們就將 的值更改foundTrue。那時,當我們評估它時,while not found它將產生False,這將使我們脫離循環。



查看完整回答
反對 回復 2023-09-12
?
猛跑小豬

TA貢獻1858條經驗 獲得超8個贊

not found用作 while 循環中的條件,而不是用作更改值的語句。您可以閱讀while not foundwhile found == False



查看完整回答
反對 回復 2023-09-12
  • 2 回答
  • 0 關注
  • 136 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號