代码之家  ›  专栏  ›  技术社区  ›  user225312

正在检查输入的空数字

  •  3
  • user225312  · 技术社区  · 16 年前

    考虑此代码:

    >>> num = int(raw_input('Enter the number > '))
    

    如果用户不键入任何内容,并按“回车”,我想捕获它。(捕获空输入)

    有两种方法可以做到:

    • 我做的很简单 num = raw_input() ,然后检查 num == '' . 之后,我可以把它投射到 int .
    • 我赶上了 ValueError . 但在这种情况下,我无法区分非数字输入和空输入。

    有什么建议吗?

    3 回复  |  直到 9 年前
        1
  •  4
  •   Thomas    16 年前

    像这样?

    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() 应用于某个数字只会返回该数字,并且emtpy字符串的计算结果为 False .

        2
  •  0
  •   Warty    16 年前

    来自非蟒蛇:

    num = your_default_value;  
    input = get_input();  
    if(input != '') num = parse_integer(input);  
    
        3
  •  0
  •   Suraj N    9 年前

    类似:

    flag = True
    while flag:
        try:
           value = input(message)
        except SyntaxError:
            value = None
        if value is None: 
            print "Blank value. Enter floating point number"
    

    对于输入为空的值,这可以捕获异常并用print语句通知用户。