检查输入的空数字

3 投票
2 回答
9462 浏览
提问于 2025-04-16 01:48

考虑一下这段代码:

>>> 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,也就是“假”。

撰写回答