Ошибки в коде на python 3.8.6
пытаюсь сделать бота для телеграм на python, объясните на примере моего кода, как после вывода "Правильно" из первой функции перейти ко второй, у меня выводит ошибку
UnboundLocalError: local variable 'x' referenced before assignment
x=0
if x == 0:
@bot.message_handler(content_types=['text'])
def send_text(message):
bot.send_message(message.chat.id, '1)правильно 2)неправильно')
if message.text=='1':
bot.send_message(message.chat.id, 'правильно')
x += 1
elif message.text=='2':
bot.send_message(message.chat.id, 'неправильно')
elif message.text!='1' or '2':
bot.send_message(message.chat.id, 'введите 1 или 2')
if x == 1:
@bot.message_handler(content_types=['text'])
def send_text(message):
bot.send_message(message.chat.id, '1)правильно 2)неправильно')
if message.text=='1':
bot.send_message(message.chat.id, 'правильно')
x += 1
elif message.text=='2':
bot.send_message(message.chat.id, 'неправильно')
elif message.text!='1' or '2':
bot.send_message(message.chat.id, 'введите 1 или 2')
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
UnboundLocalError: local variable 'x' referenced before assignment
Вы меняете переменную x внутри функции, а питон по умолчанию считает переменные, которые вы меняете в функции, локальными переменными этой функции. Нужно подсказать питону, что это глобальная переменная:
def send_text(message):
global x
Но вообще глобальные переменные это не самый лучший стиль программирования, по возможности лучше как-то обходиться без них.