Как вывести переменную в сообщении Телеграм бота

Я пишу телеграм шоп в котором есть разные виды товаров и у каждого своя цена, мне нужно в зависимости от выбранного товара поменять переменную в которую записывается стоимость товара, использую библиотеку telebot, код такой:

import telebot
from telebot import types
bot = telebot.TeleBot('***')
price = 10

@bot.callback_query_handler(func = lambda callback: True)
def callback_message(callback):
    if callback.data == 'rpCall':
        price = 7
        bot.send_message(callback.message.chat.id, '<b>Package: Number ru\nPrice: 7$\nType:Numbers</b>', parse_mode='html', reply_markup=markup2)

Однако когда я в if пытаюсь поменять значение переменной price у меня просто вылетает командная строка, я могу вызвать эту переменную при выводе сообщения типа этого:

if callback.data == 'btcCall':
        bot.send_message(callback.message.chat.id, "<b>Send %s$ to</b> <code>***</code> <b>and wait for transaction confirmation</b>"%(price), parse_mode='html', reply_markup=markupBack)

Но в таком случае я не могу менять его значение, а лишь выводить то которое было задано ему изначально, помогите решить вопрос если кто знает как поменять значение price при нажатии на кнопку в самом боте


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

Автор решения: zeroxxx

Один из вариантов это f-строка. Просто добавьте в начале строчки - f

В вашем случае это будет выглядеть так:

@bot.callback_query_handler(func = lambda callback: True)
def callback_message(callback):
    if callback.data == 'rpCall':
        price = 7
        bot.send_message(callback.message.chat.id, f'<b>Package: Number ru\nPrice: {price}\nType:Numbers</b>', parse_mode='html', reply_markup=markup2)

Вуаля, всё работает!

→ Ссылка