Python, def не видит переменную
Всем приветики омлетики, возникла такая проблема делаю игру про казино
import random
import time
import os
balance = 555
def game():
game = input('Ваша ставка $ --')
if int(game) > int(balance):
print('Error')
game2 = random.randint(0,5)
game3 = input('Ваше число от 1 до 5 X -- ')
if game3 == game2:
print('Вы вииграли X -- ')
game = int(game) * 2
balance = int(game) + int(balance)
print(str(balance))
else:
print('Проигрыш :(')
balance = int(balance) - int(game)
print(str(balance))
while 1:
cmd = input('X -- ')
if cmd == 'casino':
game()
elif cmd == 'end':
break
однако когда я запускаю её то происходит следующая ошибка
Traceback (most recent call last):
File "e:\VSC\pyvsc\hack.py\hacktest.py", line 25, in <module>
game()
File "e:\VSC\pyvsc\hack.py\hacktest.py", line 7, in game
if int(game) > int(balance):
UnboundLocalError: local variable 'balance' referenced before assignment
переменная balance есть, однако def её не видит
Ответы (2 шт):
Автор решения: Joerude
→ Ссылка
Переменная balance не входит в область видимости функции game
Если нужно чтобы переменная balance изменялась - внутри функции добавь global balance сделав её глобальной.
import random
import time
import os
balance = 555
def game():
global balance # <------
game = input('Ваша ставка $ --')
. . .