【问题标题】:Reset variable to sum a score to 0重置变量以将分数总和为 0
【发布时间】:2018-02-07 17:05:34
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    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 块。

    【讨论】:

      猜你喜欢
      • 2019-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-21
      • 1970-01-01
      • 2018-02-05
      • 2017-02-03
      • 1970-01-01
      相关资源
      最近更新 更多