簡體   English   中英

中斷在我的IF語句中不起作用

[英]Break not working within my IF statement

我不確定為什么我的break語句不起作用。

lst = []

while True:
    try:
        number = int(raw_input("Enter a number: "))
        lst.append(number)
        print lst
        if number == 'q':
            break
    except:
        print "Please enter a number!"

代碼的問題是,您首先使用raw_input查詢輸入,但立即將其轉換為int(..)

有兩種選擇:要么成功,在這種情況下通過附加它來完成處理,但是在這種情況下, number永遠不能為'q' ;或者,如果它為q ,則int(..)失敗,拋出錯誤,並且您將執行except:分支。

您可以通過以下方式解決此問題:首先存儲輸入(例如,在number ),檢查它是否為'q' ,如果不是,則對其進行處理,例如:


lst = []

while True:
    try:
        number = raw_input("Enter a number: ") # no int(..)
        if number == 'q':
            break
        else:
            lst.append(int(number))
            print lst
    except:
        print "Please enter a number!"

您可以保留else: (只有else:不是的身體else: )出來的方案作為@schwobaseggi說。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM