Задать вопрос
@TyIIIeHka

Как реализовать возможность конвертировать валюту в доллары или гривны в зависимости от нажатой кнопки?

Бот должен конвертировать криптовалюту в доллары или гривны. Для выбора между этими валютами создана команда /main при вводе которой добавляются кнопки "Доллар" или "Гривна". Как сделать так, чтобы они работали? У меня получается только так, что в не зависимости от кнопки сумма выбивается как в долларовом, так и в гривневом эквивалентах. Вот код:

@bot.message_handler(content_types=["text"])
        def send_message(message):
            try:
                num = float(message.text.split(' ')[0])
                curr = message.text.split(' ')[1]
                req = requests.get(f"https://api.coingecko.com/api/v3/coins/{curr.lower()}")
                response = req.json()
                sell_price_usd = response["market_data"]["current_price"]["usd"]
                sell_price_uah = response["market_data"]["current_price"]["uah"]
                bot.send_message(
                    message.chat.id,
                    dol_format(float(sell_price_usd) * num)
                )
                bot.send_message(
                    message.chat.id,
                    str('{:,}'.format(okr(float(sell_price_uah) * num))) + "₴"
                )
            except ValueError as ve:
                print(ve)
                bot.send_message(
                    message.chat.id,
                    "Неправильный формат"
                )
            except Exception as ex:
                print(ex)
                bot.send_message(
                    message.chat.id,
                    "Такой криптовалюты нет"
                )
Код сообщения с кнопками:

    @bot.callback_query_handler(func=lambda call: True)
    def callback_inline(call):
        try:
            if call.message:
                if call.data == "usd":
                    bot.send_message(call.message.chat.id, "Основная валюта - доллар")
                elif call.data == "uah":
                    bot.send_message(call.message.chat.id, "Основная валюта - гривна")
                bot.delete_message(chat_id=call.message.chat.id, message_id=call.message.message_id)
                bot.answer_callback_query(callback_query_id=call.id, show_alert=False,
                                          text="Основная валюта перевыбрана")
        except Exception as ex:
            print(repr(ex))
  • Вопрос задан
  • 72 просмотра
Подписаться 2 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
RimMirK
@RimMirK
Вроде человек. Вроде учусь. Вроде пайтону
принцип простой:

если нажата кнопка "$":
    вывести в долларах
если нажата кнопка "₴ (гривны)":
    вывести в гривнах


а там уже подставляешь свои переменные и функции
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы