重置变量以将分数加总为0

时间:2018-02-07 17:05:35

标签: python python-3.x variables tkinter tk

这是GUI测验的结束。您可以从一些主题中选择您想要进行的测验。

完成测验后,它会告诉您该测验的分数,然后您可以返回主菜单并选择一个新主题。

问题是分数会增加到最后一个,并且不会重置为0.

我已用**标记问题行。

def EndGame():
    global grade

    if score == 5:
        grade = "A"
    elif score == 4:
        grade = "B"
    elif score == 3:
        grade = "C"
    elif score == 2:
        grade = "D"
    elif score == 1:
        grade = "E"
    elif score == 0:
        grade = "F"

    def ReturnToMenu():
        root12.destroy()
        **score = 0** 
        Start()

1 个答案:

答案 0 :(得分:0)

ReturnToMenu永远不会被ReturnToMenu()实际调用(至少在你给我们的代码中)。也 score仅存在于函数ReturnToMenu中。你需要做

def ReturnToMenu():
    global score
    root12.destroy()
    score = 0
    Start()

但这很糟糕。您不应该使用globalnonlocal,除非您真的需要(暗示:您不)。您需要完全重新考虑您的设计,并尝试不使用其中任何一项。你也有太多的代码重复。尝试

grade = {5: 'A', 4: 'B', 3: 'C', 2: 'D', 1: 'E', 0: 'F'}[score]

而不是那个冗长的if / elif阻止。