首页 > 解决方案 > 如何在 Python 中为用户定义的函数添加计数器?

问题描述

>>> Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Users\Maximillian\AppData\Local\Programs\Python\Python37-32\lib\tkinter\__init__.py", line 1705, in __call__
    return self.func(*args)
  File "C:\Python-koding\steinsakspapir.py", line 64, in scissors
    botwin += 1
UnboundLocalError: local variable 'botwin' referenced before assignment

-尝试从其余代码中删除 botwin 和 youwin -尝试使用 youwin = youwin + 1

    def scissors():
        bot = random.randint(1,3)
       user = 3
       if user == bot:
            printfuver = ("Stalemate, booth players choose scissors")
           printfu = Label(lowerframe, text=printfuver, fg="blue")
            printfu.pack()
        if user == 3 and bot == 1:
            printfuver = ("Rock crushes scissors, bot win! ")
            printfu = Label(lowerframe, text=printfuver, fg="red")
            printfu.pack()
            botwin += 1
        if user == 3 and bot == 2:
            printfuver = ("Scissors cut paper, you win! ")
            printfu = Label(lowerframe, text=printfuver, fg="green")
            printfu.pack()
            youwin += 1

只希望 botwin 在每次运行函数后增加 1 的值。

提前致谢

标签: pythontkinter

解决方案


除了代码中的缩进错误之外,这可能是一个范围问题。检查以确保您botwin = 0的代码中有或类似的东西。如果该代码在函数中或超出全局范围,请将其放在代码的顶部。然后,在所有引用它的函数中,按照此处global botwin的说明放在函数的开头。

我希望这可以帮助你。


推荐阅读