作者EntHeEnd (ㄆㄆ)
看板Python
標題[問題] 檢查鍵盤輸入是否全為數字
時間Mon Dec 10 22:56:50 2012
目前比較直覺的寫法是這樣
keyIn = raw_input()
try:
int(keyIn)
except ValueError:
print 'some of the input is not digit'
請問 有更好的寫法嗎@@?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 1.162.45.43
1F:推 plover:float(keyIn) ((光速逃)) 12/10 23:00
2F:→ uranusjr:這樣寫很直觀啊, 不好嗎 12/10 23:02
3F:→ plover:如果是只每個char是0-9,那要考慮 '-' and '+' 12/10 23:02
4F:→ EntHeEnd:對齁 比較一般的如plove板友所說 (我忘了說是整數XD) 12/10 23:03
5F:→ plover:還有 None, 因為 int() 會回傳 0 12/10 23:04
6F:→ uranusjr:如果只有整數而且不會有負號(也就是說你想判斷「是否每 12/10 23:04
7F:→ plover:(當然 None 的每個char都是0-9) 12/10 23:05
8F:→ uranusjr:個字員都是阿拉伯數字」那麼 str 有個 isdigit() 方法 12/10 23:05
9F:→ EntHeEnd:hmm... 12/10 23:05
10F:→ EntHeEnd:喔喔 了解 這樣語意也比較清楚! 12/10 23:06
11F:→ EntHeEnd:謝謝p板友和u板友 ^^ 忽然發現有些情況我沒考慮到(雖然不 12/10 23:07
12F:→ EntHeEnd:會遇到) 例如int()這種... 12/10 23:07
13F:→ EntHeEnd:如果用isdigit()的好處是 可以自己raise exception... 12/10 23:08
14F:→ EntHeEnd:比較好處理一些情況^^ 12/10 23:08
15F:推 plover:int(None) 會有 error, 再更正一次 orz... 12/10 23:08
16F:→ EntHeEnd:恩恩... 謝謝討論! 12/10 23:09
17F:→ legnaleurc:何不用 re? 12/11 16:10
18F:→ uranusjr:↑Overkilling 12/11 21:04