значение переменной не выводиться в сообщение в telebot

Написал такой фрагмент кода:

@bot.callback_query_handler(func=lambda call: True)
def callback_inline(call):
        if call.message:
            if call.data == 'yes':
                for generatekey in range (15):
                    payid = random.choice(chars)
                    print (payid)
                bot.send_message(call.message.chat.id,'Вот твоя ссылка на оплату: [ссылка позже].\nОбязательно в комментариях к оплате укажи этот код: ', payid)
            elif call.data == 'no':
                bot.send_message(call.message.chat.id,'Хорошо, заказ отменен')

когда я вывожу переменную payid через print, то все хорошо работает, но сам бот в телеграме отказывается выводить переменную payid. При этом python не ругается введите сюда описание изображения


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

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

Изучи f-строки https://python-scripts.com/f-strings

@bot.callback_query_handler(func=lambda call: True)
def callback_inline(call):
        if call.message:
            if call.data == 'yes':
                for generatekey in range (15):
                    payid = random.choice(chars)
                    print (payid)
                bot.send_message(call.message.chat.id, f'Вот твоя ссылка на оплату: [ссылка позже].\nОбязательно в комментариях к оплате укажи этот код: {payid}')
            elif call.data == 'no':
                bot.send_message(call.message.chat.id,'Хорошо, заказ отменен')
→ Ссылка
Автор решения: Magmuss1

fixed. В ответе бота написал так:

bot.send_message(call.message.chat.id,'Вот твоя ссылка на оплату: [ссылка позже].\nОбязательно в комментариях к оплате укажи этот код: %s' % payid)
→ Ссылка