У меня есть вопрос, который является проблемой.Почему моя переменная «указана перед назначением», но не тогда, когда я изменяю слово, которому оно присвоено?
Я делаю программу крафтинга, чтобы узнать python больше, но столкнулся с проблемой; Я назначаю свои переменные в начале и позже их пользователям, как вы предполагали, однако в нем появилось сообщение об ошибке «UnboundLocalError: локальная переменная» vSaplings, на которую ссылаются перед назначением ». Я пробовал много разных способов написания его, но в конце концов, все, что я должен был сделать изменить
vSaplings
в
v_Saplings
Теперь нет никакой ошибки. Зачем это нужно сделать? Это просто персонаж.
код в вопросе:
vSaplings = 20
...
elif reqO == "Twigs":
print("This requires at least 1 sapling.")
if vSaplings > 0:
amountSaplings = input("How many saplings would you like to use to craft twigs? 1 sapling = 3 twigs.")
Это получает ошибку. Изменение «vSaplings» на «v_Saplings» удаляет ошибку. Зачем?
спасибо.
EDIT: Теперь я понимаю, что на самом деле это должна быть глобальная переменная. Еще один вопрос, нужно ли мне делать переменные глобальными в каждой отдельной функции, которую я создаю? Похоже, это заняло бы много места.
'vSaplings' и' v_Saplings' являются две различные переменные, я думаю, что нам нужно больше контекста вы говорите, что вы изменили * и * экземпляры этого имени или только один или другой? –
Извините. Да, я изменил оба варианта, и это сработало. – Jonathan
'UnboundLocalError: локальная переменная 'v Саплинги ссылаются перед присваиванием' -> У вас есть v_Saplings где-нибудь еще в этом файле? – NightShadeQueen