检查输入的空数字
考虑一下这段代码:
>>> num = int(raw_input('Enter the number > '))
如果用户什么都没输入就按了'Enter'键,我想要捕捉到这个情况。(也就是捕捉到空输入)
有两种方法可以做到这一点:
- 我可以简单地用
num = raw_input()
来获取输入,然后检查num == ''
。之后,我可以把它转换成int
类型。 - 我可以捕捉一个
ValueError
错误。但这样的话,我就无法区分是输入了非数字的内容,还是输入了空内容。
有没有什么建议可以做到这一点?
2 个回答
0
像这样的:
flag = True
while flag:
try:
value = input(message)
except SyntaxError:
value = None
if value is None:
print "Blank value. Enter floating point number"
对于输入为空的情况,这段代码可以捕捉到错误,并通过打印信息来提醒用户。
4
像这样吗?
num = 42 # or whatever default you want to use
while True:
try:
num = int(raw_input('Enter the number > ') or num)
break
except ValueError:
print 'Invalid number; please try again'
这个方法是基于这样一个事实:用 int()
函数处理一个数字时,它会直接返回这个数字。而空字符串会被认为是 False
,也就是“假”。