NEDOprogramist
@NEDOprogramist
Изучаю C#

Ошибка в коде как исправить?

Пишу на python не очень давно недели 3. Пишу ботов

Вот код:
@bot.message_handler(commands=["Game_KamBumaga"])
def smart(message):
  bot.send_message(message.chat.id,'Добро пожаловать в камень ножници бумага :) Удачи....')
  cht = bot.send_message(message.chat.id,'Виберите предмет: \n Камень, Ножници или Бумага')
  bot.register_next_step_handler(cht, vib)
def vib(message):
  messe = message.text
  ran = random.randint(1,3)
  if ran == '1':
    rl = 'Камень'
  elif ran == '2':
    rl2 = 'Ножници'
  elif ran == '3':
    rl3 = 'Бумага'
  if messe == 'Камень':
    bot.send_message(message.chat.id,'Ви вибрали Камень а я')
    bot.send_message(message.chat.id,rl)
  elif messe == 'Ножници':
    bot.send_message(message.chat.id,'Ви вибрали Ножници а я')
    bot.send_message(message.chat.id,rl2)
  elif messe == 'Бумага':
    bot.send_message(message.chat.id,'Ви вибрали Бумага а я')
    bot.send_message(message.chat.id,rl3)


ошибка:
UnboundLocalError: local variable 'rl' referenced before assignment
  • Вопрос задан
  • 124 просмотра
Решения вопроса 2
Hcuy
@Hcuy
Профессионально считаю ворон.
Попробуйте указать переменную перед тем как вы ей что-то задаете, перед if, напишите rl = ' '
и так же нужно выполнить для последующих переменных.
Ответ написан
SoreMix
@SoreMix Куратор тега Python
yellow
У вас нет переменной rl объявленой
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@twistfire92
Python backend developer
переменная rl используется раньше, чем объявлена.
уберите if else при объявлении rl rl2 rl3.

по сути они вообще не нужны, передавайте сразу "Камень" "Ножницы" "Бумага".
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы