循环错误,以便测验的数学查询重复自己

时间:2016-03-29 10:58:49

标签: python math error-handling

我有一段最基本的测验编码。我有错误处理,所以如果有人按下了一封信或其他任何数字,它会继续进行测验,而不是让这个人尝试另一个问题。 (例如,如果问题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”部分。

对于为什么会这样做有任何帮助将非常感激。

1 个答案:

答案 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