无法弄清楚为什么这段代码没有第二次循环

时间:2019-05-02 05:13:33

标签: python-3.x

此for循环运行一次,但第二次不再运行。

我到处都放置了print()语句以确认:

-round = 2,第二遍。

-循环在第二遍到达“ for”语句,但是我在“ doChecks = True”之前输入的“ print”语句没有触发。

-ClockCheck()没有影响;第一次会完美地触发,而不是第二次。

我已经工作了大约20个小时,我想我必须丢失一些明显的东西。我要睡觉了,这样我就可以在早上重新开始攻击...希望对其他人来说很明显吗?

def scoreThisRound(answerKey, round):
    global stopTime
    global gameInProgress
    userInput = []                                  #Initialize user input list

    for i in range(round):                        #This is not starting a second loop!  
        doChecks = True
        if clockCheck():                            #If there is still time remaining                              
            userInput.append(input(">"))            #Get user input and add it to a list.      

        else:
            print("ClockCheck Failed @ ScorethisRound")
            gameInProgress = False
            doChecks = False


        if doChecks == True:
            for i in range(len(answerKey)):
                if answerKey[i] == userInput[i]:
                    print("Good Answer!")                   #change this code to add time
                    stopTime += 1.5
                else:
                    print("Bad Answer!")                    #change this code to subtract time
                    stopTime -= 3

这是控制台的输出:

enter image description here

1 个答案:

答案 0 :(得分:0)

解决了,这很明显。我的“ if doChecks”语句的选项卡太过分了;这就是为什么它第一次运行良好(回合=答案=用户输入),但是第二次循环运行了(2 = 2 = 1),并引发了异常。

经验教训:

1)睡觉。这一点很重要。 2)需要获得一个IDE,该标签将制表符和空格显示为除空格以外的东西,这对我来说有点融合。

谢谢!