首页 > 解决方案 > python hangman 计数器变量被卡住

问题描述

错误尝试后,文件第 36 行中的计数器变量hangman.py不会减少。第一次尝试时从 5 变为 4,但之后每次错误尝试都保持不变

刽子手的代码

标签: pythonpython-3.x

解决方案


您已经更改了该存储库中的代码,我认为您指的是存储库中的第 36 行。话虽这么说,python 不是通过引用传递的。当您counter在函数内部进行更改时read,您不会更改全局变量lives。如果你在交互模式下运行你的程序python -i prac.py,然后print(lives)在你可以看到它仍然是它的原始值 5 之后运行。解决这个问题的方法是global lives在 prac.py 中设置如下:

# original code:
    def func(par):
        x=par

        print(x)
        c1.create_text(100,0,fill='white',text=par)
        flag_3=ob1.read(x,lives)
# new code:
def func(par):
    x=par

    print(x)
    c1.create_text(100,0,fill='white',text=par)
    global lives
    flag_3=ob1.read(x,lives)
    lives = flag_3

然而,一个更优雅的解决方案可能是将lives变量作为hangman类的成员。


推荐阅读