Как вывести переменную в сообщении Телеграм бота
Я пишу телеграм шоп в котором есть разные виды товаров и у каждого своя цена, мне нужно в зависимости от выбранного товара поменять переменную в которую записывается стоимость товара, использую библиотеку 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 шт):
Один из вариантов это 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)
Вуаля, всё работает!