我不知道为什么我在' excpet'上遇到语法错误。一切似乎对我好!这是我的代码:
def length():
gameLength = int(input("How many words do you want to play? You can chose anywhere from 1-40: "))
global gameLength
if gameLength <= 40 and gameLength >= 1:
quit
else:
int(input("Please choose a number between 1 & 40 "))
except ValueError = True:
int(input("Please choose a number between 1 & 40 "))
return gameLength
答案 0 :(得分:0)
您需要正确缩进代码,并在except之前添加try语句。您还需要使用&#39; ==&#39;来评估真实情况。而不是&#39; =&#39;。
def length():
global gameLength
gameLength = int(input("How many words do you want to play? You can chose anywhere from 1-40: "))
if gameLength <= 40 and gameLength >= 1:
quit
else:
try:
int(input("Please choose a number between 1 & 40 "))
except ValueError == True:
int(input("Please choose a number between 1 & 40 "))
return gameLength
答案 1 :(得分:0)
<强>解决方案:强>
首先,你必须缩进你的功能(不是主要错误)。现在开始下一个错误:
你必须在有一个除外之前有一个try语句。此外,您应该使用返回ValueError而不是重复相同的函数。在这里,我修改了代码但是按照你的意愿制作了它:
try:
if gameLength <= 40 and gameLength >= 1:
quit
else:
return ValueError
except ValueError: // or except ValueError == true
length()
查看except ValueError = true:
行。一个等号表示您将ValueError指定为等于true,就像您说x = 10
一样。两个相等的符号意味着你在问,“它是否正确?”,就像说1 + 5 == 6
将返回true,因为1 + 5 IS 6.现在回到你的ValueError。
使用以下代码更改您的除外行:except ValueError == true
。现在你问,“ValueError是否等于true?”而不是说,“ValueError必须等于真!”你也可以说except ValueError
因为if语句和其他语句总是会返回true。例如,if true:
将继续有效,或while true
将继续有效,但if 1+1==3:
将永远不会有效,因为1 + 1 == 3会返回false。
在为其赋值之前将gameLength指定为全局变量。
将gameLength放入try语句中:
try:
gameLength = int(input("How many..."))
为什么呢?因为如果你把它放在try语句之前并且输入是例如“hi”,你就不能把“hi”变成整数。尝试使用语句尝试来执行某些操作,并且在失败之后,不仅会放弃并返回错误,而是执行程序员希望它执行的操作。在这种情况下,我们希望它重复该函数,因此我们将对except执行length()。那就是
一遍又一遍地重复这个功能。
except ValueError:
print("Please type a number from 1-40.")
length()
最后,我还会改变一件事:
退出是一个功能。让它退出(),或者不会像你预期的那样退出。
输出(和代码)
def length():
global gameLength
try:
gameLength = int(input("How many words do you want to play? You can choose any number from 1-40: "))
if gameLength <= 40 and gameLength >= 1:
quit()
else:
return ValueError
except ValueError:
print("Please type a number from 1-40.")
length()
return gameLength
length()
IDLE :你想玩多少个单词?您可以从1-40中选择任意数字:
我:“我是一个字符串。”
IDLE :请输入1-40之间的数字 IDLE :你想玩多少个单词?您可以从1-40中选择任意数字:
我:54919
IDLE :请输入1-40之间的数字 IDLE :你想玩多少个单词?您可以从1-40中选择任意数字:
我:37.1
*使数字为整数:37.1 =&gt; 37.
CON :37
退出Python。