我有一段最基本的测验编码。我有错误处理,所以如果有人按下了一封信或其他任何数字,它会继续进行测验,而不是让这个人尝试另一个问题。 (例如,如果问题5是2 + 3并且他们输入t,那么它将继续进行而不是给他们一个问题5的不同问题)。 我试图更新编码,所以它会循环:
def random_question():#defines function to get random question
count = 0#equates count to 0
for number in range (0,10):#makes the code generate the question 10 times
try:#the code makes it so the computer tries one thing and is the beggining
questionList = [random_sum,random_subtraction,random_times]#puts functions in a list to be called on
randomQuestion = random.choice(questionList)#calls on the list to generate the random questions
randomQuestion()#calls on variable
except ValueError:#if there is a value error or a type error it will notice it and try to stop it
print ("Please enter a number")#prints out the statement if there is a type error or a value error
else:
break
random_question()#calls on the function random_question
但是,它会出现语法错误,并突出显示ValueError旁边的“except”部分。
对于为什么会这样做有任何帮助将非常感激。
答案 0 :(得分:1)
您的except语句应与try语句具有相同的缩进。在您的示例代码中,它会缩进一个额外的选项卡,这会导致该错误。
Python严肃对待它,它往往是罪魁祸首。我不清楚你的def系列是占位符还是这个代码是其中的一部分,但是如果这个代码是函数定义的一部分,你还需要担心其他的缩进问题。
我建议仔细检查并确保所有内容都正确排列。基本的经验法则是,如果某些东西是其他东西的一部分,它就会在它下面缩进。
def something():
step 1
step 2
if (condition):
the true thing
else:
the false thing
while (something):
repeat something
this is not part of the function anymore