Не выводится ascii_letters в telebot

Бот должен выдавать рандомное значение из ascii_letters, но почему-то этого не делает. Пытался вывести еще просто в print, но тоже не выходит. Несколько вариантов попробовал, но ничего не получается. Пока что остановился на:

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

Если есть ошибка в функции, то прошу прощения, так как больше ничего не смог придумать.


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

Автор решения: Maxim Chyorny

Чтобы получить случайную букву с string ascii_letters:

from string import ascii_letters
from random import choice

random_letter = choice(ascii_letters)
print(random_letter) # OUTPUT: P

Вы передаёте payid= (random.choice(ascii_letters)) в качестве принимающего параметра функции callback_inline

Чтобы получить менее желаемый результат необходимо написать:

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

К тому же я понял, что вы сами не знаете, что желаете получить, а именно вы хотели бы получить случайное число, не знаю в каком диапазоне, пример оставлю ниже:

from random import randint

random_digit = randint(0, 999)
print(random_digit) # OUTPUT: 105

Подробнее о string и random читайте в оф. документациях..

→ Ссылка