![](/img/trans.png)
[英]My break statement is not working in a while loop with an if statement?
[英]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.