【发布时间】:2016-05-04 21:51:12
【问题描述】:
我正在做的算术测验程序有问题。当我输入一个名字时,测验应该打印欢迎信息但是如果我输入一个空白或数字,那么程序应该循环问题但告诉用户,他们犯了一个错误。我使用 try 语句和 NameError 语句来尝试解决这个问题,但是当我使用函数“except”并在空闲状态下运行它时,它说我的语法无效。
这是我要修复的代码:
import random
while True:
try:
UserName = input("What is your name:")
except NameError:
print ("The answer given does not compute!! Try again")
continue
else:
break
print(UserName," welcome to the Arithmetic Quiz.")
我已经编辑了程序的代码,但是当我尝试在空闲状态下运行它时,它仍然会突出显示除了,然后说无效的语法。
【问题讨论】:
-
你的 except 缩进级别错误
-
可以添加错误信息吗?看起来
except NameError:没有正确对齐,至少在您的示例中,它应该与它对应的 try: 语句对齐。 -
@busfault 当然可以。
-
NameError 与输入是否是一个有效的人名无关。它表示变量查找未找到该变量的值。如果您在调用
input时遇到此类错误,则说明您使用的是Python 2,您应该使用raw_input。 Python 2 的input本质上不是一个好主意。 -
@super123:那么该行不能引发 NameError。如果要验证输入的名称,则必须手动检查您感兴趣的条件。
标签: python exception exception-handling