-1

私はクイズを行う必要がある課題をやっています。これはこれまでの私のコードの一部です。

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!")

if answerb のエラーが発生します。なぜこのエラーが発生するのかわかりません。コードのこの部分は、正解した問題ごとにポイントを獲得するためのものです。ポイント制は、1回目正解で2点、2回目正解で1点、3回目正解で0点です。answerb を使用すると、もう一度試して 1 ポイントを与えることができると思いました。今後同じことをしないように説明していただければ幸いです。:)

4

2 に答える 2

2

minitech が示唆したように、インデントしanswerb = input(...)すぎた可能性があります。私はあなたのコードを少し修正しました:

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
于 2013-10-28T02:09:02.593 に答える