Как добавить счетчики в пользовательские функции в Python? - PullRequest
0 голосов
/ 30 декабря 2018
>>> 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

-Попробовал удалить ботвина и 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 после каждого разаfuction запущен.

заранее спасибо

1 Ответ

0 голосов
/ 30 декабря 2018

Помимо ошибки отступа в вашем коде, это, вероятно, проблема в области видимости.Убедитесь, что у вас есть botwin = 0 или что-то подобное в вашем коде.Если этот код находится в функции или иным образом выходит за пределы глобальной области видимости, поместите его в верхнюю часть кода.Затем во всех функциях, которые ссылаются на него, поместите global botwin в начале вашей функции, как объяснено здесь .

Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...