#python #python-3.x #pycharm
#python #python-3.x #pycharm
Вопрос:
Я новичок в Python, и я пытаюсь создать очень простой код, в котором каждый раз, когда пользователь нажимает enter, он получает пять баллов, после чего в строке выводится количество баллов, которые у него есть в данный момент. Код выглядит так:
pointsEarned = 0
alien_0 = {"points":5}
new_points = alien_0["points"]
def kill():
input("Press enter to kill an alien!")
pointsEarned = pointsEarned 5
killed()
def killed():
print("You just earned " str(new_points) " points!")
print("Current points: " str(pointsEarned))
kill()
kill()
Однако, когда я запускаю этот код, он выдает мне эту ошибку:
UnboundLocalError: local variable 'pointsEarned' referenced before assignment
Я этого не понимаю, поскольку я заранее определил pointsEarned вне любой функции. Как мне это исправить?
Комментарии:
1. Объявляйте переменную явно как
global
. Если переменная находится в левой части присваивания в любом месте функции, она считается локальной, если не указано иное.
Ответ №1:
pointsEarned = 0
alien_0 = {"points":5}
new_points = alien_0["points"]
def kill():
global pointsEarned
input("Press enter to kill an alien!")
pointsEarned = 5
killed()
def killed():
print("You just earned " str(new_points) " points!")
print("Current points: " str(pointsEarned))
kill()
kill()