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

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

如何在滿足條件時結束循環?

如何在滿足條件時結束循環?

達令說 2022-01-05 19:46:45
按照我剛才的問題在這里,今天我的問題是有關的。我有一個不斷更新的全局變量,并將該變量傳遞給一個函數。該函數由循環和條件語句組成。我希望循環在條件滿足時結束,但它繼續循環。這是我的代碼。class LetterAScreen:    def identity(self):         global where        lol=Identifier()        lol.fn_compare()        print where    def verifier(self):        global where        verify=where        if verify != 1:            while (count>0):                print ("try again")                run=LetterAScreen()                run.identity()                run.verifier                print ("try again")                count += 1        else:            print ("correct")“正確”是當變量變為 1 時。否則,它是不正確的,用戶應該再試一次。輸出最終看起來像這樣。#incorrect inputs19try againtry again19try againtry again19try againtry again19try againtry again19try againtry again#correct inputs but loop doesn't end1try againtry again1try againtry again1try againtry again1try againtry againIdentifier 類的基本部分只是更新變量。我相信問題出在我分享的課程上。我真的不熟悉這是如何工作的。我希望你能幫助我。
查看完整描述

2 回答

?
精慕HU

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

這里有一些注意事項:

  • 為什么要LetterAScreen在循環中創建新對象?

  • 使用全局變量時要小心,通常還有其他方法可以解決這個問題。

我不知道Identifier該類是做什么的,但猜測該類的fn_compare功能會改變where變量嗎?此外,Identifier在每次調用identity函數時創建一個新函數似乎是您應該更改的內容。

話雖如此,該verifier方法需要調整如下:

def verifier(self):

    global where

    count = 1

    while (count>0 and where != 1):

        print ("try again")

        self.identity()

        count += 1

    print ("correct")

您不應該將全局where變量分配給本地變量,這會導致問題,因為本地變量不會在循環中更新。您可以where直接與此全局變量進行比較。我還刪除了run變量,您正在LetterAScreen類的一個實例中執行,因此您可以調用identityself 對象上的方法(類似于thisJS 中的 a )。


查看完整回答
反對 回復 2022-01-05
?
喵喵時光機

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

首先,您可能不需要在方法“驗證器”中創建新實例(創建實例時已經調用了方法,您可以使用“self”變量訪問實例。因此,而不是


run=LetterAScreen()

run.identity()


self.identity()

也可以不使用復雜的“全局”方法,而是創建像 self.verify 這樣的實例變量并在“identify”中更改它


class LetterAScreen:

    def __init__(self):

        self.verify = 0

不定式循環通常是這樣創建的


while True:

始終小心使用“全局”是棘手的,在大多數情況下,您可以以簡單易讀的方式執行任何操作,因此我建議您從此腳本中刪除所有全局變量,您可以從函數返回參數,使用可變對象等。


查看完整回答
反對 回復 2022-01-05
  • 2 回答
  • 0 關注
  • 274 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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