Использование turtle.onclick () для изменения переменной - PullRequest
2 голосов
/ 27 июня 2019

Каждый раз, когда щелкают по черепахе, как бы я увеличил переменную clicks на 1:

import turtle
jeff = turtle.Turtle()
jeff.shape("turtle")
jeff.color("blue")
clicks=0


def left(x,y): 
    jeff.left(90) 
    clicks=clicks+1
    print "you have"+clicks+"clicks."


jeff.onclick(left)

Когда я набираю это, в строке clicks=clicks+1 она дает мне:

UnboundLocalError: локальная переменная "clicks", на которую ссылаются перед присваиванием

1 Ответ

1 голос
/ 27 июня 2019

Переменная clicks является глобальной.Любая функция, которая хочет изменить глобальную переменную, должна объявить эту переменную global:

from turtle import Turtle, mainloop

clicks = 0

def left(x, y):
    global clicks

    jeff.left(90)
    clicks += 1
    print "you have " + str(clicks) + " clicks."

jeff = Turtle()
jeff.shape("turtle")
jeff.color("blue")

jeff.onclick(left)

mainloop()
...