try:/except: returns 尝试 运行 模块时 Python 中的语法错误
try:/except: returns a syntax error in Python when trying to run module
下面是我的代码,错误在第 4 行 "except" 给出语法错误...(这是一个调试和错误捕捉任务。我看不出它有什么问题)
while True:
try:
userInputOne = input(int("How much time in hours a week, do you spend practicing? ")
except TypeError:
print("Oops! Practice time must be rounded to the nearest integer. It also needs to be a numerical value! ")
break
else:
userInputTwo = str(input"How good to do want to be? Enter 'very good', 'good', mediocre, 'not good' ")
if userInputTwo not in ('very good', 'good', 'mediocre', 'not good'):
print("Please use one of the options. ")
else:
print("Let's calculate...")
break
您的代码:
while True:
try:
userInputOne = input(int("How much time in hours a week, do you spend practicing? ")
except TypeError:
print("Oops! Practice time must be rounded to the nearest integer. It also needs to be a numerical value! ")
break
else:
userInputTwo = str(input"How good to do want to be? Enter 'very good', 'good', mediocre, 'not good' ")
if userInputTwo not in ('very good', 'good', 'mediocre', 'not good'):
print("Please use one of the options. ")
else:
print("Let's calculate...")
break
首先,应该如下所示:
while True:
try:
userInputOne = input(int("How much time in hours a week, do you spend practicing? "))
except TypeError:
...
...
我喜欢捕捉并解决这个问题的一些方法:
- 运行 pylint 在你的文件上。它会告诉您哪里存在错误,并对可以改进的代码发出警告。
- 使用 vim 和命令
==
将尝试进行一些自动缩进。
但最重要的是要理解whitespace is important in Python。整个文件中存在空格语法错误。您需要在代码中使用四个空格而不是八个。此外,如上面的评论所述,您有一些不平衡的括号会破坏您的代码。此外,您有一个没有 if
的 else
语句。周围有很多问题,所以我建议一次重新编写几行代码,并确保它在继续之前有效。此外,您不能将字符串转换为整数,否则至少会得到意想不到的结果。
我附上了工作代码。
语法错误是由缺少括号和错误缩进引起的。看看你的 else:
声明。它与 try:
语句不在同一高度。
TypeError 意味着,您不必将输入转换为字符串,因为它们已经是。否则我建议你创建一些变量并在你想用它们计算时通过 int()
转换它们。
while True:
try:
userInputOne = input("How much time in hours a week, do you spend practicing? ")
except TypeError:
print("Oops! Practice time must be rounded to the nearest integer. It also needs to be a numerical value! ")
break
else:
userInputTwo = input("How good to do want to be? Enter 'very good', 'good', mediocre, 'not good' ")
if userInputTwo not in ('very good', 'good', 'mediocre', 'not good'):
print("Please use one of the options. ")
else:
print("Let's calculate...")
break
编辑:
我建议使用 PyCharm(如果你不这样做)及其自动缩进功能和漂亮的 "indent guidelines"。所以你可以更容易地看到很多错误。
下面是我的代码,错误在第 4 行 "except" 给出语法错误...(这是一个调试和错误捕捉任务。我看不出它有什么问题)
while True:
try:
userInputOne = input(int("How much time in hours a week, do you spend practicing? ")
except TypeError:
print("Oops! Practice time must be rounded to the nearest integer. It also needs to be a numerical value! ")
break
else:
userInputTwo = str(input"How good to do want to be? Enter 'very good', 'good', mediocre, 'not good' ")
if userInputTwo not in ('very good', 'good', 'mediocre', 'not good'):
print("Please use one of the options. ")
else:
print("Let's calculate...")
break
您的代码:
while True:
try:
userInputOne = input(int("How much time in hours a week, do you spend practicing? ")
except TypeError:
print("Oops! Practice time must be rounded to the nearest integer. It also needs to be a numerical value! ")
break
else:
userInputTwo = str(input"How good to do want to be? Enter 'very good', 'good', mediocre, 'not good' ")
if userInputTwo not in ('very good', 'good', 'mediocre', 'not good'):
print("Please use one of the options. ")
else:
print("Let's calculate...")
break
首先,应该如下所示:
while True:
try:
userInputOne = input(int("How much time in hours a week, do you spend practicing? "))
except TypeError:
...
...
我喜欢捕捉并解决这个问题的一些方法:
- 运行 pylint 在你的文件上。它会告诉您哪里存在错误,并对可以改进的代码发出警告。
- 使用 vim 和命令
==
将尝试进行一些自动缩进。
但最重要的是要理解whitespace is important in Python。整个文件中存在空格语法错误。您需要在代码中使用四个空格而不是八个。此外,如上面的评论所述,您有一些不平衡的括号会破坏您的代码。此外,您有一个没有 if
的 else
语句。周围有很多问题,所以我建议一次重新编写几行代码,并确保它在继续之前有效。此外,您不能将字符串转换为整数,否则至少会得到意想不到的结果。
我附上了工作代码。
语法错误是由缺少括号和错误缩进引起的。看看你的 else:
声明。它与 try:
语句不在同一高度。
TypeError 意味着,您不必将输入转换为字符串,因为它们已经是。否则我建议你创建一些变量并在你想用它们计算时通过 int()
转换它们。
while True:
try:
userInputOne = input("How much time in hours a week, do you spend practicing? ")
except TypeError:
print("Oops! Practice time must be rounded to the nearest integer. It also needs to be a numerical value! ")
break
else:
userInputTwo = input("How good to do want to be? Enter 'very good', 'good', mediocre, 'not good' ")
if userInputTwo not in ('very good', 'good', 'mediocre', 'not good'):
print("Please use one of the options. ")
else:
print("Let's calculate...")
break
编辑: 我建议使用 PyCharm(如果你不这样做)及其自动缩进功能和漂亮的 "indent guidelines"。所以你可以更容易地看到很多错误。