Ответы пользователя по тегу Python
  • Как удалить replykeyboardmarkup в telebot?

    @Klork
    Можете попробовать отправить пустую клавиатуру, как я знаю сам телеграмм поддерживает только ее скрытие, а не удаление, поэтому удалить клавиатуру не получится. Но возможно я ошибаюсь.
    Ответ написан
  • Задачка по python как решить?

    @Klork
    for i in b:
            if i==1:
                kol1+=1

    Если я правильно понимаю, то вы проверяете наличие переменной i равной 1 в списке b, если вы введете 1 то условие выполнится. Но вам нужно проверять каждую цифру в числе.
    b = int(str(bin(a))[2:])
    while b != 0:
            i = b % 10
            b = b // 10
            if i==1:
                 kol1+=1

    bin(a) возвращает строку 0b<твое число в двоичном виде>, ob - это обозначение что число является бинарным, у остальных они будут 0c и 0h. Делая срез строки мы и избавляемся от этого, а затем преобразуем в число.
    Ответ написан
    Комментировать
  • Как в Телеграм боте добавить кнопки на Python?

    @Klork
    Отправлять на сервер можно только клавиатуры(Inlinekeyboard, replykeyboard и вроде как есть еще виды), так же клавиатура должна быть списком преобразованным в json объектом и добавлено в поле reply_markup
    import requests
    import json
    
    token = <Ваш токен>
    URL = 'https://api.telegram.org/bot' + token
    r1 = requests.get(URL + '/getUpdates').json()
    chat_id = r1['result'][-1]['message']['from']['id']
    reply_markup = {
        'inline_keyboard': [[{'text': 'текст1', 'callback_data': 'Возвращаемое значение 1'},
                             {'text': 'текст2', 'callback_data': 'Возвращаемое значение 1'}]]}
    
    data = {'chat_id': chat_id, 'text': 'текст', 'reply_markup': json.dumps(reply_markup)}
    r2 = requests.post(URL + '/sendMessage', data=data)

    Так же вам надо будет принять и обработать и возвращаемое значение при нажатии какой либо из кнопок, чтобы знать, что пользователь нажал кнопку. Обозначается это как callbackquery
    Ответ написан
    Комментировать