Запись ботом ответа пользователя в переменную
Хочу что бы бот проверял ответ пользователя на выражение, выдает ошибку.
import random
import telebot
import config
from telebot import types
bot = telebot.TeleBot(config.TOKEN)
@bot.message_handler(commands=['start'])
def welcome(message):
bot.send_message(message.chat.id, 'Чтобы начать тренировку сложения целых чисел - /aoi')
@bot.message_handler(commands=['aoi'])
def aoi(message):
num1 = random.randint(1, 10000)
num2 = random.randint(1, 10000)
sum1 = num1 + num2
bot.send_message(message.chat.id, str(num1) + ' + ' + str(num2))
user_result = message.text
result(message)
def result(message):
if int(user_result) == sum1:
bot.send_message(message.chat.id, 'Верно.')
else:
bot.send_message(message.chat.id, 'Не верно. Ответ: ' + str(sum1))
aoi(message)
bot.polling(none_stop=True)
C:\Users\KuznecOFF\Documents\python\math generator>bot.py
Traceback (most recent call last):
File "C:\Users\KuznecOFF\Documents\python\math generator\bot.py", line 39, in <module>
bot.polling(none_stop=True)
File "C:\Users\KuznecOFF\AppData\Local\Programs\Python\Python312\Lib\site-packages\telebot\__init__.py", line 1043, in polling
self.__threaded_polling(non_stop=non_stop, interval=interval, timeout=timeout, long_polling_timeout=long_polling_timeout,
File "C:\Users\KuznecOFF\AppData\Local\Programs\Python\Python312\Lib\site-packages\telebot\__init__.py", line 1118, in __threaded_polling
raise e
File "C:\Users\KuznecOFF\AppData\Local\Programs\Python\Python312\Lib\site-packages\telebot\__init__.py", line 1074, in __threaded_polling
self.worker_pool.raise_exceptions()
File "C:\Users\KuznecOFF\AppData\Local\Programs\Python\Python312\Lib\site-packages\telebot\util.py", line 147, in raise_exceptions
raise self.exception_info
File "C:\Users\KuznecOFF\AppData\Local\Programs\Python\Python312\Lib\site-packages\telebot\util.py", line 90, in run
task(*args, **kwargs)
File "C:\Users\KuznecOFF\AppData\Local\Programs\Python\Python312\Lib\site-packages\telebot\__init__.py", line 6801, in _run_middlewares_and_handler
result = handler['function'](message)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\KuznecOFF\Documents\python\math generator\bot.py", line 25, in aoi
result(message)
File "C:\Users\KuznecOFF\Documents\python\math generator\bot.py", line 30, in result
if text == sum1:
^^^^
NameError: name 'sum1' is not defined. Did you mean: 'sum'?
Ответы (1 шт):
Автор решения: WTFisGoingOn
→ Ссылка
Передайте sum1 в качестве аргумента функции result
def aoi(message):
num1 = random.randint(1, 10000)
num2 = random.randint(1, 10000)
sum1 = num1 + num2
bot.send_message(message.chat.id, str(num1) + ' + ' + str(num2))
user_result = message.text
result(message, sum1) #Тут
def result(message, sum1): #тут
if int(user_result) == sum1:
bot.send_message(message.chat.id, 'Верно.')
else:
bot.send_message(message.chat.id, 'Не верно. Ответ: ' + str(sum1))
aoi(message)
p.s. логику кода не проверял.