Python 除了一个名字的错误
我制作的一个算术测验程序有问题。当我输入名字时,测验应打印欢迎信息。但是,如果我输入空白或数字,则程序应循环提问,但告诉用户他们出错。我使用try语句和namererror语句试图解决这个问题,但是当我使用函数“except”并在空闲状态下运行它时,它表明我的语法无效 以下是我试图修复的代码:Python 除了一个名字的错误,python,exception,exception-handling,Python,Exception,Exception Handling,我制作的一个算术测验程序有问题。当我输入名字时,测验应打印欢迎信息。但是,如果我输入空白或数字,则程序应循环提问,但告诉用户他们出错。我使用try语句和namererror语句试图解决这个问题,但是当我使用函数“except”并在空闲状态下运行它时,它表明我的语法无效 以下是我试图修复的代码: import random while True: try: UserName = input("What is your name:") except Name
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.")
我已经编辑了程序的代码,但当我尝试在空闲状态下运行它时,它仍然会突出显示Exception,然后显示无效语法。这是
try:except:else:
块的正确缩进
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.")
警告(感谢cricket_007)这个循环永远不会结束。我的意思是,这个注释显示了
try:
缩进应该如何用于OP。这是try:except:else:
块的正确缩进
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.")
警告(感谢cricket_007)这个循环永远不会结束。我的意思是说,这个注释显示了
try:
缩进应该是如何用于OP的。您不需要try,除非来检查空字符串
while True:
UserName = input("What is your name:")
if not UserName:
print("The answer given does not compute!! Try again")
continue
else:
break
print(UserName," welcome to the Arithmetic Quiz.")
您不需要尝试使用except
来检查空字符串
while True:
UserName = input("What is your name:")
if not UserName:
print("The answer given does not compute!! Try again")
continue
else:
break
print(UserName," welcome to the Arithmetic Quiz.")
您的except位于错误的缩进级别。您可以添加错误消息吗?它看起来像,除了NameError:
没有正确对齐,至少在您的示例中,它应该与它对应的try:语句对齐。@busfault当然可以。NameError与输入是否为有效的人名无关。它表示变量查找未找到该变量的值。如果您从输入调用中得到这样的错误,那么您使用的是Python2,您应该使用原始输入。Python2的input
从本质上讲从来都不是一个好主意。@super123:那么这行就不会产生名称错误。如果要验证输入的名称,必须手动检查您感兴趣的条件。您的EXPET位于错误的缩进级别。是否可以添加错误消息?它看起来像,除了NameError:
没有正确对齐,至少在您的示例中,它应该与它对应的try:语句对齐。@busfault当然可以。NameError与输入是否为有效的人名无关。它表示变量查找未找到该变量的值。如果您从输入调用中得到这样的错误,那么您使用的是Python2,您应该使用原始输入。Python2的input
从本质上讲从来都不是一个好主意。@super123:那么这行就不会产生名称错误。如果要验证输入的名称,必须手动检查您感兴趣的条件。是否有办法使其在出现空格错误或数字时循环该问题。@cricket\u 007我现在明白您的意思,因此如果值检查为空,您就不会使用try函数@cricket\u 007来检查数字,您可以使用if UserName.isdigit()
检查是否输入了超过空格的内容。您可以检查if UserName.strip()
下面是否有包含此信息的书籍请@cricket\u 007不知道任何书籍。我所学到的所有python都是从联机阅读python文档中获得的。有没有办法使它在出现空格错误或数字时能够循环问题。@cricket\u 007我理解你现在的意思,所以如果值检查为空,就不要使用try函数@cricket\u 007作为数字,您可以使用if UserName.isdigit()
检查是否输入了超过空格的内容。您可以检查if UserName.strip()
下面是否有包含此信息的书籍请@cricket\u 007不知道任何书籍。我所学到的所有python都是从在线阅读python文档中获得的。这是正确的缩进,但循环从来都不是exits@cricket_007我的意思是,它只是显示缩进应该是什么样的OP。我想我应该详细阐述一下:-)谢谢!这是正确的缩进,但循环永远不会exits@cricket_007我的意思是,它只是显示缩进应该是什么样的OP。我想我应该详细阐述一下:-)谢谢!