作者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