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

    InternetMaster
    @InternetMaster
    Интернет
    Если боту - то никак. Даже если пользователь первый напишет, то по нику - никак, только по ID. Правда, с 7 декабря 2021 (с версии 5.5) бот может первым написать:

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


    Если вообще нужно первому написать (не боту) то это уже MTProto API.
    Ответ написан
    Комментировать
  • Какой выбрать учебник по Java для новичка в программировании?

    @zloitrol
    Джейми Чан - "Java быстрый старт", но я бы рекомендовал книгу совмещать с каким-то курсом так как подобная литература это не художественное произведение читать , тут одной фантазии как бы мало)) Нужна практика и побольше.
    Ответ написан
    Комментировать
  • Имеет ли многопоточность смысл в Python?

    Sly_tom_cat
    @Sly_tom_cat
    .
    Сильно зависит от реализуемой задачи.

    Для задач типа пользовательского интерфейса - одного потока вполне достаточно, для убыстрения обработки потока независимых запросов с высоким временем ожидания - можно смело писать многопоточные решения и даже с учетом GIL будет большой выигрыш.
    А вот для математических обсчетов больших массивов данных - тут GIL хотелось бы отключить, потому что разбиение задачи на продпроцессы иногда съедает своими накладными ресурсами все бенефиты использования много ядерных процессоров.
    Ответ написан
    Комментировать
  • Как сделать из python файла .exe?

    @MEDIOFF
    Python Developer
    Как вы .exe собираетесь запускать на linux и macOs?
    Ответ написан
    Комментировать
  • Как исправить ошибку else?

    @EgorSvinarev
    У вас табуляции неправильная. Её поправьте
    async def on_member_join(member):
      if cursor.execute(f"SELECT id FROM users WHERE id = {member.id}").fetchone() is None:
        cursor.execute(f"INSERT INTO users VALUES ('{member}', {member.id}, 0, 0, 1)")
        connection.commit()
      else:
          pass
    Ответ написан
    4 комментария