Ошибки в коде на 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

Но вообще глобальные переменные это не самый лучший стиль программирования, по возможности лучше как-то обходиться без них.

→ Ссылка