Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 除了一个名字的错误_Python_Exception_Exception Handling - Fatal编程技术网

Python 除了一个名字的错误

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

我制作的一个算术测验程序有问题。当我输入名字时,测验应打印欢迎信息。但是,如果我输入空白或数字,则程序应循环提问,但告诉用户他们出错。我使用try语句和namererror语句试图解决这个问题,但是当我使用函数“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.")

我已经编辑了程序的代码,但当我尝试在空闲状态下运行它时,它仍然会突出显示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。我想我应该详细阐述一下:-)谢谢!