重置变量以将分数总和为 0
Reset variable to sum a score to 0
图形界面小测验到此结束。您可以从几个主题中选择您想做的测验。
完成测验后,它会告诉您该测验的分数,然后您可以返回主菜单并选择一个新主题。
问题是分数加到最后一个分数上,并没有重置回 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()
调用过(至少在你给我们的代码中)。还
score
只存在于函数 ReturnToMenu
中。你需要做
def ReturnToMenu():
global score
root12.destroy()
score = 0
Start()
但这很糟糕。你不应该使用 global
或 nonlocal
除非你真的必须(提示:你不需要 )。您需要 完全重新考虑您的设计并尝试在不使用其中任何一个的情况下进行设计。您的代码重复也太多了。尝试
grade = {5: 'A', 4: 'B', 3: 'C', 2: 'D', 1: 'E', 0: 'F'}[score]
而不是那个冗长的 if / elif
块。
图形界面小测验到此结束。您可以从几个主题中选择您想做的测验。
完成测验后,它会告诉您该测验的分数,然后您可以返回主菜单并选择一个新主题。
问题是分数加到最后一个分数上,并没有重置回 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()
调用过(至少在你给我们的代码中)。还
score
只存在于函数 ReturnToMenu
中。你需要做
def ReturnToMenu():
global score
root12.destroy()
score = 0
Start()
但这很糟糕。你不应该使用 global
或 nonlocal
除非你真的必须(提示:你不需要 )。您需要 完全重新考虑您的设计并尝试在不使用其中任何一个的情况下进行设计。您的代码重复也太多了。尝试
grade = {5: 'A', 4: 'B', 3: 'C', 2: 'D', 1: 'E', 0: 'F'}[score]
而不是那个冗长的 if / elif
块。