Skip to main content
 首页 » 编程设计

python名称未定义,即使它是

2025年05月04日28www_RR

我知道这是基本的,但实际上我什至不知道我做错了什么。

while True: 
    try: 
        end=int(input("If You Dont Want To Buy Anything Press 1 To Exit\nOr If You Would Like To Try Again Please Press 2")) 
    except ValueError: 
        print("\nPlease Enter Only 1 Or 2") 
    if end==1: 
        exit() 
    elif end==2: 
        continue 

我确实在开始时定义了结束,但错误是 NameError: name 'end' is not defined 我什至尝试过将 end 设为全局。

请您参考如下方法:

end 仅在没有 ValueError 时才分配给。如果 int() 引发异常,则赋值永远不会发生。

要么测试有效的end值在try(这样你就知道没有引发异常),或者分配一个默认值给先结束。

例如,如果输入了 1 或 2 以外的任何内容,以下代码不会抛出您的异常,并且仍会提示用户重新输入数字:

while True: 
    try: 
        end=int(input("If You Dont Want To Buy Anything Press 1 To Exit\nOr If You Would Like To Try Again Please Press 2")) 
        if end==1: 
            exit() 
        elif end==2: 
            break 
    except ValueError: 
        pass 
    print("\nPlease Enter Only 1 Or 2") 

请注意,我将 print() 移动到了 except block 的外部;如果抛出异常或者没有执行 break 或 exit() ,它将被打印出来。请注意,我在这里使用 break 而不是 continue 来退出 while True 循环; continue 只会开始下一次迭代,提示用户再次输入数字。