Написала код для калькулятора системы счисления с кнопками. Не могу понять, почему бот не реагирует на кнопку 'Калькулятор чисел из любой системы счисления в 10' и при нажатии на кнопку ''Калькулятор чисел из 10 системы счисления в другую' выполняет не то действие
import telebot
from telebot import types
bot = telebot.TeleBot('#####')
@bot.message_handler(commands=['start'])
def start(message):
markup = types.ReplyKeyboardMarkup(resize_keyboard = True)
item1 = types.KeyboardButton('Калькулятор чисел из 10 системы счисления в другую')
item2 = types.KeyboardButton ('Калькулятор чисел из любой системы счисления в 10')
markup.add(item1, item2)
bot.send_message(message.chat.id, 'Введите число', reply_markup = markup)
@bot.message_handler(content_types=['text'])
def bot_message(message):
if message.chat.type == 'private':
if message.text == 'Калькулятор чисел из 10 системы счисления в другую':
bot.send_message(message.chat.id, 'Введите число')
bot.register_next_step_handler(message, get_number)
def get_number(message):
try:
a = message.text
bot.send_message(message.chat.id, 'Введите основание системы счисления, в которое Вы хотите перевести число')
bot.register_next_step_handler(message, convert_number, a)
except ValueError:
bot.send_message(message.chat.id, 'Пожалуйста, нажмите на кнопку "Калькулятор", чтобы заново начать операцию')
def convert_number(message, a):
try:
n = int(message.text)
s = ''
al = 'ABCDEF'
while a > 0:
c = a % n
if c < 10:
s = str(c) + s
else:
s = al[c - 10] + s
a //= n
bot.send_message(message.chat.id, f'Ответ: {s}')
except ValueError:
bot.send_message(message.chat.id, 'Пожалуйста, нажмите на кнопку "Калькулятор", чтобы заново начать операцию')
elif message.text == 'Калькулятор чисел из любой системы счисления в 10':
bot.send_message(message.chat.id, 'Введите число')
bot.register_next_step_handler(message, get_number)
def get_number(message):
try:
y = message.text
bot.send_message(message.chat.id, 'Введите основание системы счисления, из которой Вы хотите перевести число')
bot.register_next_step_handler(message, convert_number, y)
except ValueError:
bot.send_message(message.chat.id, 'Пожалуйста, введите число')
def convert_number(message, y):
try:
z = int(message.text)
power = 1
ans = 0
for i in y[::-1]:
if i < 'A':
ans += int(i) * power
else:
ans += (ord(i) - ord('A') + 10) * power
power *= z
bot.send_message(message.chat.id, f'Ответ: {ans}')
except ValueError:
bot.send_message(message.chat.id, 'Пожалуйста, введите основание системы счисления')
bot.polling()