telebot: UnboundLocalError: local variable 'x' referenced before assignmen
import telebot
x = int(0)
bot = telebot.TeleBot("Мой токен")
@bot.message_handler(commands = ['start'])
def send(message):
x += 1
bot.reply_to(message, "Счетчик: " + str(x))
bot.infinity_polling()
писал игрового бота в телеграм и столкнулся с ошибкой UnboundLocalEкror: local variable 'x' referenced before assignmen как я понял он просто не хочет делать вычисления почему? помогите пожалуйста бот должен при каждой команде старт увеличивать счетчик на единицу
Ответы (1 шт):
Автор решения: Vladimir Ignatenko
→ Ссылка
Так он же пишет в чем ошибка. Вы пытаетесь обрашаться к переменной, значение которой не было присвоенно.
В данном случае вам надо понимать, что x это две разные переменных. Одна глобальная - которую проинициализировали в начале программы. И вторая - это x с которой вы работаете внутри функции.
Чтобы работать с глобальной переменной внутри тела функции, то нужно сначала объявить, что она глобальная.
def send(message):
global x
x += 1
bot.reply_to(message, "Счетчик: " + str(x))