在第二行中,如果輸入字串但找不到使用例外或類似內容的方法,我試圖使其不會崩潰。在 while 回圈中,它正常作業,因為例外處理這種情況。
number = 0 #this to be removed
number = (float(input('pick a number'))) #I want to make this not crash if a string is entered.
while number not in [100, 200, 3232]:
try:
print('wrong number ')
number = (float(input('pick a number;'))) #Here it does not crash if a string is entered which is fine
except ValueError:
print("retry")
uj5u.com熱心網友回復:
while 緊隨其后的是可變條件,通常最終會出現錯誤/重復代碼 => 可維護性差。
使用while True條件來避免重復您的代碼,然后在它有效時中斷回圈。
while True:
try:
number = float(input('pick a number;'))
if number in [100, 200, 3232]:
break
print("wrong number")
except ValueError:
print("illegal number, retry")
注意:在一般情況下要小心 float 相等(另請參閱float 與 float literal 比較的奇怪輸出,浮點數學是否被破壞?)
uj5u.com熱心網友回復:
也許創建一個函式來接受輸入:
def get_input():
while True:
a = input("Pick a number: ")
try:
return float(a)
except:
pass
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/351538.html
上一篇:給出錯誤輸入時回圈?
