Пишу телеграмм бота на Python. Хелп

Пишу телеграмм бота на Python. Библиотека Telegram Bot API. Бот должен выдать пользователю расчет цены.

bot.send_message(message.chat.id, 'Результат равен ' + (int(width_d)*int(length_d))*3000 , parse_mode='html')

Залип с одним вопросом. Не понимаю почему не происходит расчет. Точнее понимаю что из за типов данных, но не могу понять почему они не переводятся, вроде делаю все правильно. Или может я чего не понимаю. хелп. Сильно не ругайте, если что ни так.) Только учусь. Буду рад продуктивной критике.

import telebot
from telebot import types

bot = telebot.TeleBot('5367324988:AAH-vbdXLimLjzt2r_QGpKTrpjr6AHhfZiA')
dlina = '<b>Ввведите пожалуйста длину рисунка в сантиметрах: пример "125"</b>'
shirina = '<b>Ввведите пожалуйста ширину рисунка в сантиметрах: \nпример "125"</b>'
messno = '<b>Всего доброго! Если захотите сделать расчет, воспользуйтесь командой /start </b>'
length_d = [int]
width_d = [int]

@bot.message_handler(commands=['start'])
def start(message):
    markup = types.ReplyKeyboardMarkup(resize_keyboard=True, row_width=2)
    bat1 = types.KeyboardButton('Да')
    bat2 = types.KeyboardButton('Нет')
    markup.add(bat1, bat2)
    mess = f'Здравствуйте <b>{message.from_user.first_name} {message.from_user.last_name}!\n</b>Вас приветствует компания <b>MagiсPrint23!</b>\nМы занимаемся интерьерной печатью и нанесением любых рисунков на любые поверхности. \nХотите расчитать стоимость вашего рисунка?'
    bot.send_message(message.chat.id, mess, parse_mode='html', reply_markup=markup)

@bot.message_handler(content_types=['text'])
def calculation(message):
    if message.text == "Да":
        bot.send_message(message.chat.id, dlina, parse_mode='html')
        bot.register_next_step_handler(message, get_length)

    elif message.text == "да":
        bot.send_message(message.chat.id, dlina, parse_mode='html')
        bot.register_next_step_handler(message, get_length)

    elif message.text == "Нет":
        bot.send_message(message.chat.id, messno, parse_mode='html')

    elif message.text == "нет":
        bot.send_message(message.chat.id, messno, parse_mode='html')

    else:
        bot.send_message(message.chat.id, text="На такую комманду я не запрограммировал..")

def get_length(message):

    try:
        length = message.text
        length_d.append(length)

        if length.isdigit():
            bot.send_message(message.chat.id, shirina, parse_mode='html')
            bot.register_next_step_handler(message, get_width)
        else:
            bot.send_message(message.chat.id, 'Цифрами пожалуйста', parse_mode='html')
            bot.register_next_step_handler(message, get_length)
    except Exception:
            bot.reply_to(message, 'Длина должна быть в сантиметрах')
            bot.register_next_step_handler(message, get_length)


def get_width(message):

    try:
        width = message.text
        width_d.append(width)

        if width.isdigit():
            bot.send_message(message.chat.id, 'Результат равен ' + ((width_d)*(length_d))*3000 , parse_mode='html')
        else:
            bot.send_message(message.chat.id, 'Цифрами пожалуйста', parse_mode='html')
            bot.register_next_step_handler(message, get_width)
    except Exception:
            bot.reply_to(message, 'Длина должна быть в сантиметрах')
            bot.register_next_step_handler(message, get_width)


bot.polling(none_stop=True)

Ответы (1 шт):

Автор решения: Максим

Мне кажется проблема в том, что у вас в функции get_length() переменная length она как бы локальна, то есть она существует только в этой функции и нигде больше, что бы ее использовать в следущих функциях ее нужно куда то сохранить, наприме, в список, или базу данных(что более лучше), и потом использовать ее, если нужно могу написать полный код

→ Ссылка