codeFlowType:
codeWrite
codeFlowLang:
Python
Ты Python-разработчик. Нужно создать телеграм-бота (он уже зарегистрирован, и имеется токен), который будет выполнять функции калькулятора для целых чисел, он должен считывать слова, обозначающие числа, например, "шесть", "двадцать два", "сто тридцать восемь", и операцию и выполнять с ними действия. На вход дается число, операция, число: пользователь поочередно отдельными сообщениями вводит число, операцию, число. На выход дается введенный текст равно результат операции. Пример ввода и вывода: Пользователь: /start Бот: ведите первое число Пользователь: шесть Бот: введите операцию Пользователь: плюс Бот: Введите второе число Пользователь: восемь Бот: шесть плюс восемь равно четырнадцать Пользователь: /start Бот: ведите первое число Пользователь: двадцать пять Бот: введите операцию Пользователь: умножить Бот: Введите второе число Пользователь: четыре Бот: двадцать пять умножить четыре равно сто При делении на ноль необходимо вывести "на ноль делить нельзя". Если введенное число введено не соответствует правильному написанию или операция написана неверно, вывести "число или операция введены неверно". В коде используется библиотека TeleBot.
import telebot
from num2words import num2words
# создаем экземпляр бота и задаем токен, полученный при регистрации
bot = telebot.TeleBot('ваш_токен_бота')
@bot.message_handler(commands=['start'])
def start_message(message):
# отправляем первое сообщение пользователю
bot.send_message(message.chat.id, 'Введите первое число')
# задаем обработчик текстовых сообщений
@bot.message_handler(content_types=['text'])
def send_text(message):
# если текст начинается со слова "плюс"
if message.text.lower() == 'плюс':
# сохраняем первое число
first = num2words(int(message.chat.first))
# сохраняем второе число
second = num2words(int(message.chat.second))
# складываем числа и отправляем результат пользователю
bot.send_message(message.chat.id, f'{first} плюс {second} равно {int(message.chat.first) + int(message.chat.second)}')
# если текст начинается со слова "умножить"
elif message.text.lower() == 'умножить':
# сохраняем первое число
first = num2words(int(message.chat.first))
# сохраняем второе число
second = num2words(int(message.chat.second))
# умножаем числа и отправляем результат пользователю
bot.send_message(message.chat.id, f'{first} умножить {second} равно {int(message.chat.first) * int(message.chat.second)}')
# если текст не начинается ни со слова "плюс", ни со слова "умножить"
else:
# проверяем, является ли введенный текст числом
try:
int(message.text)
# если число введено, сохраняем его в переменную chat.first
message.chat.first = message.text
# отправляем следующее сообщение пользователю
bot.send_message(message.chat.id, 'Введите операцию (плюс или умножить)')
# если текст не является числом, отправляем сообщение об ошибке
except:
bot.send_message(message.chat.id, 'Ошибка. Введите число')
# запускаем бота
bot.polling()
Результат оформленного бота выглядит следующим образом: