Задать вопрос
  • Как убрать панель управления окном?

    Vindicar
    @Vindicar
    RTFM!
    При создании окна с помощью WinAPI можно задать свойства рамки окна, в т.ч. наличие кнопок управления, наличие заголовка, и т.п. с помощью стилей окна.
    GUI-фреймворки могут эту функциональность выставлять наружу, предоставляя средства управления стилями окна, которое они создают. А могут и не выставлять.
    В то же время, поскольку под капотом они всё равно обращаются к WinAPI, можно использовать соответствующие функции для манипуляции окном, созданным с помощью GUI-фреймворка.

    Насчет интерфейсов под линукс или mac os подсказать не могу, не в курсе как там что устроено.
    Ответ написан
    Комментировать
  • Как при помощи python сравнить день месяц (сейчас) с определенным днем и месяцем?

    Vindicar
    @Vindicar
    RTFM!
    dtNow = datetime.datetime.now()
    dtDeadline = datetime.datetime(dtNow.year, 3, 10) # 10 марта
    if dtNow > dtDeadline:
        print("Дедлайн прошел")
    Ответ написан
    1 комментарий
  • Как сделать реагирование на реакции в discord.py?

    Vindicar
    @Vindicar
    RTFM!
    В обработчике команды:
    1. Делаешь хранилище, словарь-dict с ключом вида (message id, user id) и значением в виде объектов asyncio.Event.
    2. Когда отправляешь сообщение для реакции, помещаешь в хранилище пару (id сообщения, id адресата), а значением задаешь новый asyncio.Event().
    3. С помощью asyncio.wait_for() и Event.wait() ждешь срабатываения этого объекта Event или желаемого таймаута.
    4. Если объект сработал и функция wait_for() вернула значение, то реакция была. Действуешь соответственно.
    5. Если wait_for() выбросила asyncio.TimeoutError, то произошел таймаут. Действуешь соответственно.
    В обоих случаях удаляешь из хранилища ключ (id сообщения, id адресата)

    Что касается реакции, то тебе нужно событие on_raw_reaction_add() и ассоциированный с ним объект класса RawReactionActionEvent. Оттуда можно достать сведения о пользователе, сообщении и эмодзи. Ищешь в хранилище пару (id сообщения, id пользователя), если нашел - значит, это одно из наших специальных сообщений. В обработчике этого события выбираешь соответствующей этой паре объект asyncio.Event и дергаешь его метод set(), чтобы просигналить вышеприведенному алгоритму (он тогда пойдёт по ветке 4). Иначе не делаешь ничего.
    Ответ написан
    Комментировать
  • Как после вывода рандомного списка пересгенерировать его заново?

    Vindicar
    @Vindicar
    RTFM!
    Очевидно, внести код генерации случайного текста внутрь обработчика.
    Снаружи можно оставить только неизменные части - например, всё что до работы с random.choice().
    К слову, а накой огурец ты подключаешь сюда numpy? Чем тебя встроенный random не устроил?
    Ответ написан
    Комментировать
  • Ошибка Task exception was never retrieved, что делать?

    Vindicar
    @Vindicar
    RTFM!
    Повнимательнее глянуть в документацию.
    Message.get_args() - это не асинхронный метод (не async), а потому при его вызове не нужно использовать await.
    Ответ написан
    2 комментария
  • Проблема с кодом на Python. Поможете?

    Vindicar
    @Vindicar
    RTFM!
    pronoun == "I" or "he" or "she" or "it"
    Так работать не будет. Если тебе нужно проверить несколько вариантов, либо используй логическое ИЛИ правильно
    pronoun == "I" or pronoun == "he" or pronoun == "she" or pronoun == "it"

    либо проверяй на вхождение в коллекцию
    pronoun in ("I", "he", "she", "it")
    Ответ написан
    1 комментарий
  • Почему не работает поиск уникального числа в списке?

    Vindicar
    @Vindicar
    RTFM!
    Пропускаешь свой список через Collections.Counter, получишь число вхождений каждого элемента.
    Потом ищешь элементы, у которых число вхождений равно 1.

    А если хочешь именно циклом, то можно так:
    def find_uniqs(arr):
        uniqs = set()
        srtd = sorted(arr)  # список идёт по возрастанию
        for i in range(1, len(srtd)-1):
            # если элемент не равен соседям, то он один такой в списке
            if srtd[i-1] != srtd[i] and srtd[i] != srtd[i+1]:
                uniqs.add(srtd[i])
        # обрабатываем края списка, если они есть, т.е. список из >1 элемента
        if len(srtd) > 1:
            if srtd[0] != srtd[1]:
                uniqs.add(srtd[0])
            if srtd[-1] != srtd[-2]:
                uniqs.add(srtd[-1])
        elif srtd: # у нас один элемент в списке?
            uniqs.add(srtd[0]) # ну тогда его и добавляем.
        return uniqs
    Ответ написан
    2 комментария
  • Ошибка в 5 строке. как сделать без ошибки?

    Vindicar
    @Vindicar
    RTFM!
    Включаю режим телепатии... ошибка "SyntaxError: unexpected EOF while parsing"?
    Если да, то включить голову и подумать.
    Ты вызываешь a=eval(t.get()). Т.е. пытаешься выполнить код, записанный в поле ввода t.
    Учитывая, что у тебя интерфейс ещё только создаётся, в этом поле ввода сейчас пусто.
    Строка выполняется до того как ты увидишь окно и успеешь туда что-то ввести.
    Вот eval() и ругается на пустую строку.
    Собственно, замечания только 2.
    1. Напиши обработчик щелчка по кнопке, и забирай значение из поля ввода в этом обработчике.
    2. На кой огурец тебе eval()? Чем int() не устроил?
    Ответ написан
    5 комментариев
  • Как убрать все цвета с фото кроме черного?

    Vindicar
    @Vindicar
    RTFM!
    image: numpy.ndarray = ...  # тут твоё изображение как массив BGR-пикселей формой (H,W,3)
    mask = image.max(axis=2) > 35  # логический массив формой (H,W), где True будет там,
    # где наибольшая составляющая соответствующего пикселя > 35
    image[mask] = [255,255,255]  # заменяем значения пикселей, помеченных маской, на желаемые.

    Магия numpy, однако.
    Ответ написан
    4 комментария
  • Python. Не могу понять данный пример на фото, объясните подробнее и попроще??

    Vindicar
    @Vindicar
    RTFM!
    Срезы пишутся в виде "откуда:докуда" или "откуда:докуда:шаг", при этом любая часть может быть опущена, получив значение по умолчанию.
    "откуда" определяет номер первого элемента, который мы выбираем, включительно. Если он опущен, то это эквивалент указания 0.
    "докуда" определяет номер первого элемента, который мы УЖЕ НЕ выбираем, т.е. не включительно. Если он опущен, то это эквивалент "до конца списка".
    "шаг" определяет шаг, с которым мы идём по коллекции, т.е. берем ли мы каждый элемент, или каждый второй (через один), или каждый третий, и так далее. Если шаг не указан, то это эквивалент шага 1.

    В общем-то и всё, остались мелочи типа отрицательного шага (идём в обратном порядке). Что именно непонятно?
    Ответ написан
    1 комментарий
  • Как научить чат-бота в телеграм воспринимать буквы?

    Vindicar
    @Vindicar
    RTFM!
    q.execute("update config set bitcoin = " + str( new_bitcoin ) + " where id = 1")

    За такое надо бить по рукам. Железной линейкой. Поясню почему:
    если new_bitcoin присвоить число 1234 или строку "1234", то получим запрос
    update config set bitcoin = 1234 where id = 1
    Этот запрос синтаксически корректен с точки зрения языка SQL.
    А вот если new_bitcoin присвоить строку "foobar", получим запрос
    update config set bitcoin = foobar where id = 1
    С точки зрения SQL это обращение к столбцу foobar. Которого, разумеется, нету.

    А теперь, внимание, вопрос: какого огурца ты не ознакомился с азами использования СУБД, а именно с синтаксисом подстановки значения?
    Читай тут, начиная со слов "Instead, use the DB-API’s parameter substitution". Осознай, и больше так не делай.

    Ну и до кучи: что будет, если в bitcoin будет строка вида "0; --"?
    update config set bitcoin = 0; -- where id = 1
    Всё, что после "--" это комментарий, и будет проигноировано. Т.е. запрос перезапишет весь столбец bitcoin нулями.
    Ответ написан
    Комментировать
  • Как перевести с Python на php?

    Vindicar
    @Vindicar
    RTFM!
    Ну например, curl для запросов и функции json для работы с форматом.
    Ответ написан
    Комментировать
  • Python как обновить вывод в консоли?

    Vindicar
    @Vindicar
    RTFM!
    Кури curses или аналоги. Но встроенный модуль curses работает только под линуксом, а под винду нужно поискать что-то другое, типа asciimatics или unicurses.
    Ответ написан
    Комментировать
  • Unittest в Python?

    Vindicar
    @Vindicar
    RTFM!
    Приведенный код - это и есть юнит-тест.
    Юнит-тест проверяет, что отдельный модуль (класс, функция и т.п.) реализует ожидаемое поведение, как наблюдаемое снаружи, так и реализуемое внутри. Иными словами, он проверяет соответствие модуля ожидаемому интерфейсу.
    Интеграционный тест проверяет способность разных модулей взаимодействовать в предполагаемых рамках, т.е. проверяет правильность проектирования самого интерфейса взаимодействия. Достаточно ли возможностей для взаимодействия? Не забыли ли мы какой-то метод?
    Ответ написан
  • Ошибка: mute_role = discord.utils.get(ctx.message.guild.roles, name = 'mute') AttributeError: 'NoneType' object has no attribute 'guild', что зделать?

    Vindicar
    @Vindicar
    RTFM!
    Наверно, слэш команды не связаны с сообщением, а потому ctx.message - это None.
    Но ты можешь получить ссылку на гильдию и через member.
    Ответ написан
    1 комментарий
  • Почему в методе класса TypeError: takes 1 positional argument but 2 were given?

    Vindicar
    @Vindicar
    RTFM!
    Потому что self.get_x().
    В питоне доступ к полям/методам self ВСЕГДА явный, в отличие от других языков (типа C++ или C#), где this можно опустить.
    Собственно, ошибка тебе и говорит, что питон не может именно НАЙТИ get_x().
    Ответ написан
    7 комментариев
  • Как создать проект в Visual Studio 2022 с двумя разными языками (Python и C++)?

    Vindicar
    @Vindicar
    RTFM!
    Так просто не получится.
    Интерпретатор питона можно встроить в своё приложение, но это задачка тем более не из простых.
    Какую задачу ты решаешь? Может, можно проще.
    Ответ написан
  • Активность в приложениях?

    Vindicar
    @Vindicar
    RTFM!
    Ну для начала определи понятие "активность".
    Время работы процесса приложения?
    Время, пока окно приложения активно, т.е. находится на переднем плане и/или имеет фокус?
    Время, пока пользователь манипулирует клавиатурой и мышью, пока окно приложения активно?
    Вот исходя из этого уже и гугли либо работу с процессами, либо работу с окнами (наверняка потербуется winapi), либо установку хуков на клавиатуру/мышь. Язык программирования выбираешь сам, так как тема не тривиальная, и бороться одновременно с инструментарием и с языком будет сложно вдвойне.
    Ответ написан
    Комментировать
  • Активность клана в игре на discord.py?

    Vindicar
    @Vindicar
    RTFM!
    Да, можно.
    Пишешь бота, который постоянно висит на сервере, периодически опрашивает список пользователей и смотрит их activity, после чего обновляет результаты в БД, например.

    Подробности зависят от предпочитаемого языка программирования и библиотеки для работы с дискордом.
    И да, сначала учишь язык программирования, потом пишешь бота. Попытаешься одновременно - наступишь на уйму элементарных грабель. Боты, всё же, не такая тривиальная вещь.
    Ответ написан
    Комментировать