我在解决python异常时遇到错误
问题是: 提示用户输入其姓名。然后程序会用他的名字来问候这个人,但是如果这个人的名字是“jack”,就会抛出一个异常,他会要求退出程序 我试过这个:我在解决python异常时遇到错误,python,exception,Python,Exception,问题是: 提示用户输入其姓名。然后程序会用他的名字来问候这个人,但是如果这个人的名字是“jack”,就会抛出一个异常,他会要求退出程序 我试过这个: import sys try: name = input("Enter your name : ") if name == "jack": except NameError: print("Invalid Name") sys.exit(0)
import sys
try:
name = input("Enter your name : ")
if name == "jack":
except NameError:
print("Invalid Name")
sys.exit(0)
finally:
print("Welcome",name)
这就是我得到的错误
File "main.py", line 5
except NameError:
^
SyntaxError: invalid syntax
这里有几件事。
首先,行名inpunter your name:将引发一个错误,因为它试图找到一个名为name的函数,但该函数不存在。改为使用name=inpunter输入您的姓名:
然而,这并不是抛出这个错误的原因。这里真正的问题是你根本不想使用try或except。
TryExcept所做的是尝试运行代码,并在出现错误时执行其他操作。你所描述的是试图自己提出错误。这是通过raise完成的,例如:
raise Name错误无效的名称
将出现以下错误:
NameError:无效的名称
所以试试这个代码
name=输入您的姓名:
如果name==Jack:
raise Name错误无效的名称
欢迎,姓名
值得注意的是,它没有使用sys模块。这是因为引发错误将自动退出代码第一件事:try,except和finally应位于相同的缩进级别,就像if、elif和else一样
第三行中还缺少一个=符号,它应该是:
name = input("Enter your name : ")
在这种情况下,您应该只使用raise关键字来raise NameError。你不需要尝试,除了这里
应该是这样的:
name = input("Enter your name : ")
if name == "jack":
raise NameError("Invalid Name")
else:
print("Welcome", name)
由于出现异常,程序将自动退出,因此您不必为此使用sys.exit。您需要重新阅读正在阅读的任何教程。在Python中,您需要非常精确地使用缩进-而且名称输入。。。语法没有什么意义…非常感谢,非常感谢