Найти в Дзене
PROGROMMIST

Телеграмм бот калькулятор на Python

Это статья для тех кто уже знает основы в Python telebot ( библиотека для телеграмм ботов ) Сначала подключим библиотеку import telebot bot = telebot.TeleBot('Token') Потом подключаем обработчик сообщений @bot.message_handler(commands=['start']) def handle_text(message): numvan = bot.send_message(message.chat.id, 'ведите 1 число') bot.register_next_step_handler(numvan ,num1_fun) чтоб создать телеграмм бота калькулятор нам надо получить от пользователя данные(первое число , второе и операцию) это можно сделать через функцию bot.register_next_step_handler(numvan ,num1_fun) она перенаправляет нас на другую функцию и вот таким образом мы получим num1 def num1_fun(message): global num1; num1 = message.text numtwo = bot.send_message(message.chat.id, 'ведите 2 число') bot.register_next_step_handler(numtwo ,num2_fun) вот так num2 def num2_fun(message): global

Это статья для тех кто уже знает основы в Python telebot ( библиотека для телеграмм ботов )

Сначала подключим библиотеку

import telebot

bot = telebot.TeleBot('Token')

Потом подключаем обработчик сообщений

@bot.message_handler(commands=['start'])

def handle_text(message):

numvan = bot.send_message(message.chat.id, 'ведите 1 число')

bot.register_next_step_handler(numvan ,num1_fun)

чтоб создать телеграмм бота калькулятор нам надо получить от пользователя данные(первое число , второе и операцию) это можно сделать через функцию bot.register_next_step_handler(numvan ,num1_fun) она перенаправляет нас на другую функцию и вот таким образом мы получим num1

def num1_fun(message):

global num1;

num1 = message.text

numtwo = bot.send_message(message.chat.id, 'ведите 2 число')

bot.register_next_step_handler(numtwo ,num2_fun)

вот так num2

def num2_fun(message):

global num2;

num2 = message.text

operu = bot.send_message(message.chat.id, 'ведите действие')

bot.register_next_step_handler(operu ,operi)

И напоследок нужно получить операцию получаем и заодно через if,elif

решаем задачу

def operi(message):

global oper;

oper = message.text

if oper == "+":

resylit = int(num1)+int(num2)

bot.send_message(message.chat.id,resylit)

elif oper == "-":

resylit = int(num1)-int(num2)

bot.send_message(message.chat.id,resylit)

elif oper == "*":

resylit = int(num1)*int(num2)

bot.send_message(message.chat.id,resylit)

elif oper == "/":

resylit = int(num1)/int(num2)

bot.send_message(message.chat.id,resylit)

else:

bot.send_message(message.chat.id,"ошибка ведите /start")

bot.polling(none_stop=True)

Вот в принципе и все решения

для удобство скину ссылку на код в github

123.py

import telebot

bot = telebot.TeleBot('Token')

@bot.message_handler(commands=['start'])

def handle_text(message):

numvan = bot.send_message(message.chat.id, 'ведите 1 число')

bot.register_next_step_handler(numvan ,num1_fun)

def num1_fun(message):

global num1;

num1 = message.text

numtwo = bot.send_message(message.chat.id, 'ведите 2 число')

bot.register_next_step_handler(numtwo ,num2_fun)

def num2_fun(message):

global num2;

num2 = message.text

operu = bot.send_message(message.chat.id, 'ведите действие')

bot.register_next_step_handler(operu ,operi)

def operi(message):

global oper;

oper = message.text

if oper == "+":

resylit = int(num1)+int(num2)

bot.send_message(message.chat.id,resylit)

elif oper == "-":

resylit = int(num1)-int(num2)

bot.send_message(message.chat.id,resylit)

elif oper == "*":

resylit = int(num1)*int(num2)

bot.send_message(message.chat.id,resylit)

elif oper == "/":

resylit = int(num1)/int(num2)

bot.send_message(message.chat.id,resylit)

else:

bot.send_message(message.chat.id,"ошибка ведите /start")

bot.polling(none_stop=True)