【问题标题】:Use try catch statement for empty input对空输入使用 try catch 语句
【发布时间】:2023-03-05 14:03:01
【问题描述】:

我试图使用 try catch 语句将空输入与其他输入区分开来。目前,我有这个。

while True:
    try:
        user = int(input("Please enter an integer"))
        break
    except ValueError:
        print("Must be an integer")

问题来自这样一个事实,即如果用户没有输入任何内容而只按回车键,我想要一个单独的错误语句。但是,它仍然将该特定输入读取为 ValueError 并给我上面的消息,无论我尝试什么。

【问题讨论】:

  • 你可以在传递给 int 之前检查输入。如果你想要一个单行,你也可以这样做: int(input("请输入一个整数") + 1/0)。如果字符串为空,则会引发 ZeroDivisionError。
  • 对不起。我对此有点陌生。在将输入传递给 int 之前如何检查输入?
  • value = input("请输入一个整数");如果值:用户 = int(值)

标签: exception python-3.x integer try-catch


【解决方案1】:

您可以测试string is not empty是否。

while True:
    try:
        s = input("Please enter an integer")
        if not s:
             print ("Input must not be empty")
        elif not s.isdigit():
             print ("Input must be a digit")
        else:
            user = int(s)
            break
    except ValueError:
        print("Must be an integer")

【讨论】:

  • 谢谢。看起来这样行得通。虽然如果你不介意,我有一个相关的问题。如果您希望用户输入一个字符串,例如一个字母,并且如果用户输入一个整数,让程序返回一个错误怎么办?
  • 看看这个问题:stackoverflow.com/questions/21388541/…我更新了我的答案。如果这回答了您的问题,请将我的回答标记为已接受。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-25
相关资源
最近更新 更多