-4

对于我正在进行的“项目”确实需要一些帮助,因为我是一个完全的新手——不仅仅是在 Python 中,而是在编程本身——只使用 Python 一周。

我要创建的是一个小“测验”,菜单工作正常,这是最简单的创建,菜单中的选项 nr 2 也是如此,退出测验,但我对其余部分有一些问题代码。我需要解决的是,每次玩家回答问题后,都会提示他/她是否想继续玩,如果是(“ja”)玩家会得到一个新的随机问题,如果不是当前分数(百分比)显示并关闭程序。随机问题工作正常,继续工作正常,但退出测验和分数仍然是一个问题,我无法正确回答,也许这只是一个简单的错误,但不知何故我找不到它。

先感谢您!

PS。由于某些未知原因,孔代码无法在代码框中正确显示,所以我只发布代码的问题“区域”。

while aqpool[0]:
    shuffle (aqpool)
    numRight = 0



    for question, rightAnswer in aqpool:
        answer = input(question + " ")

        playAgain = "ja"
        playStop = "nej"

        if answer == rightAnswer:
            print ("RÄTT SVAR!")

            numRight = numRight + 1


            if playAgain == "ja" or playAgain == "j":

                print("Vill du försätta spela? (ja eller nej)")
                playAgain = str(input())
                continue

            if playStop == "nej" or playStop == "n":
                total = numRight / len(aqpool) * 100
                print ("Du hade ",total, "% rätt!")
                playStop = str(input())
                break                                

        else:


            print("FEL SVAR! Rätta svaret är: " + rightAnswer + "\n")

            if playAgain == "ja" or playAgain == "j":
                print ("Vill du försätta spela? (ja eller nej)")
                playAgain = str(input())

            if playStop == "nej" or playStop == "n":
                total = numRight / len(aqpool) * 100
                print ("Du hade ", total, "% rätt!")
                playStop = str(input())
                break
4

1 回答 1

0
userWantToContinue = True
while aqpool[0] and userWantToContinue:
    shuffle (aqpool)
    numRight = 0

    for question, rightAnswer in aqpool:
        answer = raw_input(question + " ")

        if answer == rightAnswer:
            print ("RÄTT SVAR!")

            numRight = numRight + 1

        else:
            print("FEL SVAR! Rätta svaret är: " + rightAnswer + "\n")


        print("Vill du försätta spela? (ja eller nej)")
        userWantToContinue = str(raw_input()) not in ('n', 'nej')
        if not userWantToContinue:
            break

    total = numRight / len(aqpool) * 100
    print ("Du hade %s%% rätt!" % total)
于 2013-10-05T12:27:22.230 回答