1

我正在尝试创建用户需要输入值的 GUI 界面。如果他输入错误,则会出现错误消息。否则它会保留正确的答案。但是,如果用户忘记输入一个值而将其留空怎么办?还是按回车而不输入任何内容?在这种情况下如何调用错误消息?

为了简单起见,这里是没有 GUI 的基本示例:

h = int(raw_input("Enter "))

if h >= 10:
    print True
elif h < 10:
    print False
else:
    print "Error"

想法是,如果用户没有输入任何内容,它将打印

“错误”。但是,程序只是停止并打印以下内容: ValueError: invalid literal for int() with base 10: ''

那么如何让 python 将空格视为值并打印“错误”呢?

4

3 回答 3

1

首先验证他们是否输入了有效数字:

inpt = raw_input("Enter ")
while not inpt.isdigit():
    inpt = raw_input("Enter ")

inpt = int()
if h >= 10:
    print True
elif h < 10:
    print False
else:
    print "Error"
于 2018-04-02T20:22:03.193 回答
0

您需要处理异常。尝试这个 :

try:
  h = int(raw_input("Enter "))

  if h >= 10:
    print True
  else h < 10:
    print False
except ValueError:
    print "Error"

正如 Zwer 提到的,错误来自使用 int() 将作为字符串的用户输入转换为 int 失败,因为用户输入无效。所以要么捕获错误,要么验证用户输入,然后将其转换为 int

于 2018-04-02T20:21:52.590 回答
0

做任何有错误的事情的正常语法是使用 try: except 块。您将希望 try 块中的代码尽可能小,以便它可以捕获特定错误并为您提供有关程序中正在发生的事情的反馈。

语法如下

try:
   # your code here
except <some exception here>:
   # what happens when it fails

所以实际的代码是。

try:
    h = int(raw_input("Enter "))
except ValueError:
    print "Error"

if h >= 10:
    print True
else h < 10:
    print False
于 2018-04-02T20:24:58.997 回答