繁体   English   中英

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

[英]Reset variable to sum a score to 0

这是 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()

ReturnToMenu从未真正使用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块。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM