pythonif-statementpython-3.3statements

Python 'if' statements


I am doing an assignment where I need to conduct a quiz. This is a part of my code so far.

answer = input("Your answer: ")
guessesTaken = 0
points = 0
if answer == 'Call Of Duty' or answer == 'Call of duty' or answer == 'Call of duty' or answer == 'a)' or answer == 'call of duty' or answer == 'a':
    print("You are correct!")
    points = points + 2
    print("You scored two points!")
else: 
    guessesTaken = guessesTaken + 1
    print("Incorrect!")
    print("You have", guessesTaken, "guess remaining!")
answerb = input("Your answer: ")
if answerb == 'Call Of Duty' or answerb == 'Call of duty' or answerb == 'Call of duty' or answerb == 'a)' or answerb == 'call of duty' or answerb == 'a':
    points = points + 1
    print("You scored one point!")

I am getting an error for if answerb. I cannot figure out why I am getting this error. This part of the code is meant to score points for each question you get right. Points system is as follows, 2 for correct answer on first try, 1 on second try and 0 for third try. I thought using answerb would let me have a second try and give 1 point. If you could please explain it to me so I don't do it in the future again. :)


Solution

  • Like minitech suggested, you may have just indented answerb = input(...) too far. I modified your code a little:

    maxGuesses = 2 #Max number of attempts for the problem
    guessesTaken = 0
    points = 0
    while guessesTaken<maxGuesses:
        answer = input("Your answer: ")
        if answer.lower() == 'call of duty' or answer.lower() == 'a' or answer.lower() == 'a)':
            print("You are correct!")
            points = points + maxGuesses-guessesTaken
            print("You scored %d points!" %(maxGuesses-guessesTaken))
            break
        else:
            print("Incorrect")
            print("You have %d guesses remaining!" %(maxGuesses-guessesTaken-1))
            guessesTaken += 1