[問題] 檢查鍵盤輸入是否全為數字

看板Python作者 (ㄆㄆ)時間13年前 (2012/12/10 22:56), 編輯推噓2(2016)
留言18則, 4人參與, 最新討論串1/1
目前比較直覺的寫法是這樣 keyIn = raw_input() try: int(keyIn) except ValueError: print 'some of the input is not digit' 請問 有更好的寫法嗎@@? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 1.162.45.43

12/10 23:00, , 1F
float(keyIn) ((光速逃))
12/10 23:00, 1F

12/10 23:02, , 2F
這樣寫很直觀啊, 不好嗎
12/10 23:02, 2F

12/10 23:02, , 3F
如果是只每個char是0-9,那要考慮 '-' and '+'
12/10 23:02, 3F

12/10 23:03, , 4F
對齁 比較一般的如plove板友所說 (我忘了說是整數XD)
12/10 23:03, 4F

12/10 23:04, , 5F
還有 None, 因為 int() 會回傳 0
12/10 23:04, 5F

12/10 23:04, , 6F
如果只有整數而且不會有負號(也就是說你想判斷「是否每
12/10 23:04, 6F

12/10 23:05, , 7F
(當然 None 的每個char都是0-9)
12/10 23:05, 7F

12/10 23:05, , 8F
個字員都是阿拉伯數字」那麼 str 有個 isdigit() 方法
12/10 23:05, 8F

12/10 23:05, , 9F
hmm...
12/10 23:05, 9F

12/10 23:06, , 10F
喔喔 了解 這樣語意也比較清楚!
12/10 23:06, 10F

12/10 23:07, , 11F
謝謝p板友和u板友 ^^ 忽然發現有些情況我沒考慮到(雖然不
12/10 23:07, 11F

12/10 23:07, , 12F
會遇到) 例如int()這種...
12/10 23:07, 12F

12/10 23:08, , 13F
如果用isdigit()的好處是 可以自己raise exception...
12/10 23:08, 13F

12/10 23:08, , 14F
比較好處理一些情況^^
12/10 23:08, 14F

12/10 23:08, , 15F
int(None) 會有 error, 再更正一次 orz...
12/10 23:08, 15F

12/10 23:09, , 16F
恩恩... 謝謝討論!
12/10 23:09, 16F

12/11 16:10, , 17F
何不用 re?
12/11 16:10, 17F

12/11 21:04, , 18F
↑Overkilling
12/11 21:04, 18F
文章代碼(AID): #1GnVWrAe (Python)
文章代碼(AID): #1GnVWrAe (Python)