我想限制用戶輸入,以便提供的N
服從N >0
或N < 100
。如何使用try .. except或if ... else驗證用戶輸入?
我應該使用if... else
還是try... except
?你能否提供兩種方法的例子?
我想限制用戶輸入,以便提供的N
服從N >0
或N < 100
。如何使用try .. except或if ... else驗證用戶輸入?
我應該使用if... else
還是try... except
?你能否提供兩種方法的例子?
我建議組合:)
while True:
value = raw_input('Value between 0 and 100:')
try:
value = int(value)
except ValueError:
print 'Valid number, please'
continue
if 0 <= value <= 100:
break
else:
print 'Valid range, please: 0-100'
希望它能幫助。
而True:?這是什麼意思? zindel。 – kn3l 2011-04-05 20:24:12
實際上是一個無限循環。這段代碼不允許程序繼續進行下去,直到值沒有被輸入爲止。一般來說,它是某種「goto」仿真,適用於這類任務。看,週期內有'break'和'continue'語句 - 所以不用擔心 - 它會在某個時候停止;) – zindel 2011-04-05 20:28:33
'while True:'是創建無限循環的一個習慣用法(在@ zindel的例子中這裏是一個循環,直到用戶輸入的數字在允許的範圍內,所以唯一的方法就是輸入一個有效的整數(或Ctrl + C,我猜...) – bgporter 2011-04-05 20:29:27
if/else在這裏可能更合適,因爲引發的任何異常都會是你自己拋出的異常(並且你仍然必須處理它們)。
最簡單的方法是if/else。
但我可能會做一個驗證與if/else和拋出異常。
我想你可能打算'和',而不是'或'在你的情況。 – 2011-04-05 20:57:36