Python新手在這裏。我一直在關注流量控制,並且遇到了我不太瞭解與例外有關的情況。有時會將float傳遞給int()方法,但並不總是
在下面的代碼我希望用戶在給定的範圍內輸入一個整數,並在違規的情況下,不斷地問他們,直到他們給一個有效值:
while True:
try:
x = int(raw_input("Pick an integer between 2 and 9. "))
except ValueError:
print "Please enter an integer!"
continue
else:
if 2 <= x <= 9:
print("Your number is {0}.").format(x)
break
else:
print "That's not between 2 and 9!"
continue
至於我可以告訴,這段代碼正如我所希望的那樣工作。我已經拋出了我能想到的所有其他類型的輸入,並且它只能讓您在輸入2-9的整數時退出循環。 甚至不接受漂浮物。
我的問題是,因爲int()
可以成功地叫上彩車,
>>> int(2.1)
2
爲什麼會發生這種嘗試/ except結構引發異常當輸入是float
?如果我在沒有try/except語句的情況下運行代碼並輸入除整數以外的任何內容,則會引發錯誤並退出。
我從Windows PowerShell運行python 2.7。
因爲你不是在浮動上調用它。 –
你檢查的是ist int(「2.1」)。這引發了一個異常。 raw_input返回一個str。 – Humbalan