Задать вопрос
  • Что выполняет эта функция?

    Vindicar
    @Vindicar
    RTFM!
    Ничего она не делает. Тело функции - это
    # тело
        length = len(array)
        group_len = int(group_len)
        space = int(space)
        if limit is None:
            limit = length

    Ни одна из этих операций не меняет ничего вне функции.
    Всё что выше - список параметров с указанием типа (type hint) и значений по умолчанию.
    Ответ написан
    Комментировать
  • Сравнить два целых числа поразрядно?

    Vindicar
    @Vindicar
    RTFM!
    Преобразовать в строку и сравнить строки.
    Если нужно узнать количество совпадающих старших разрядов - последовательно сравнивать подстроки длины N, начиная с позиции 0.
    Ответ написан
    Комментировать
  • Почему выдает ошибку Shard ID None has connected to Gateway?

    Vindicar
    @Vindicar
    RTFM!
    1. Это не ошибка, это уведомление. Не видишь метку INFO?
    2. Почему ты реализуешь команды через on_message()? Класс Client вообще не очень хоршо подходит для ботов, используй класс Bot (наследник Client, умеет всё что и Client плюс еще кучу полезностей).
    3. Ты указываешь в качестве интентов Intents.default(), а команды, похоже, рассчитаны на работу на сервере. Для получение текста сообщения из сервера нужно запросить интент message_content, иначе content будет приходить только для тех сообщений, где упоминается бот, или которые посланы боту в личку.

    Короче, найди туториал получше, например, вот этот.
    Ответ написан
    Комментировать
  • Как сделать каждому уровню logging свой шаблон?

    Vindicar
    @Vindicar
    RTFM!
    Свой класс-потомок Formatter написать. В нём переопределить метод format().
    А потом при конфигурации logging задать экземпляр этого класса для нужных Handler'ов.
    В принципе, можно попробовать отнаследоваться от StreamHandler и поиграть с его методами, если я верно понимаю что ты хочешь сделать.
    Ответ написан
    Комментировать
  • Как можно реализовать движение объекта в 2d пространстве к еде с помощью нейросети?

    Vindicar
    @Vindicar
    RTFM!
    Передача координат цели - плохая идея. Если цель в 100;100 сеть получит один и тот же сигнал и если управляемый объект в 90;100, и если объект в 110;100 - а действия должны быть разные. Кроме того, если сместить всю карту на некоторое расстояние, сеть может сломаться, а это плохо.

    Я бы посоветовал делать raytracing. Выпускаешь веером N лучей из центра управляемого объекта, говоришь, во что они упёрлись.
    А лучше вместо тонких лучей сделать сектора обзора фиксированной ширины. Для каждой комбинации тип объекта+сектор сообщать сети расстояние до ближайшего объекта данного типа в данном секторе. Тогда сеть сможет ориентироваться по своим окрестностям независимо от своего расположения.
    Ответ написан
    2 комментария
  • Как добавить атрибут в Input?

    Vindicar
    @Vindicar
    RTFM!
    Из вопроса не очень ясно, в чём загвоздка.
    Как разобрать строку на список аргументов, подобно тому, как это делает терминал? Смотри модуль shlex.
    Как в списке аргументов найти переданные ключи и параметры-значения? Смотри модуль argparse.
    Ответ написан
    Комментировать
  • Как сделать бесконечное цикл запуска приложения ubuntu?

    Vindicar
    @Vindicar
    RTFM!
    Напиши модуль для systemd. Он умеет перезапускать процессы при необходимости, запускать их при запуске системы, собирать логи, и т.д.
    Но это не сработает для графического приложения.
    Ответ написан
    Комментировать
  • Почему ошибка в терминале?

    Vindicar
    @Vindicar
    RTFM!
    Читать документацию. Класс Updater() не принимает параметр use_context в конструкторе.
    Ответ написан
  • Не устанавливаются модули?

    Vindicar
    @Vindicar
    RTFM!
    1. pip - это не команда питона, в IDLE её вводить не надо.
    2. найди, где pip.exe лежит (обычно каталог питона - подкаталог Scripts). Или добавь этот каталог в переменную окружения PATH, или указывай полный путь до exeшника при вызове.
    3. Версия 3.7.3 очень старая. Её имеет смысл только на 32х битных машинах использовать. Если нет причин для этого - поставь версию новее.
    Ответ написан
  • Как получать от пользователя файл, а потом хранить его в памяти (aiogram)?

    Vindicar
    @Vindicar
    RTFM!
    Разбирайся, что нужно библиотеке для отправки файла. Если достаточно файлового объекта - BytesIO в помощь. Это как-бы файловый объект, чьё содержимое хранится в ОЗУ.
    Ответ написан
  • Как сделать изменяемую пременную?

    Vindicar
    @Vindicar
    RTFM!
    У тебя money всегда 1000, потому что ты в цикле while присваиваешь ей это значение. Хоть немножко читай код, который пишешь, проходи его по шагам.
    Ответ написан
    Комментировать
  • Повторяющейся функция python?

    Vindicar
    @Vindicar
    RTFM!
    Почему именно декоратор?

    Так-то решений несколько, от цикла вида
    while True:
        time.sleep(3600.0)
        my_function()

    и до использования специализированных пакетов типа schedule.
    Конкретика зависит от того, что ещё должно работать в программе помимо этой функции, допустимо ли использование потоков, есть ли требования по прерыванию/отмене вызова, и т.д.

    Но вот фраза насчёт декоратора заставляет подозревать учебное задание.
    Ответ написан
    4 комментария
  • Почему могут не работать команды в discord.py?

    Vindicar
    @Vindicar
    RTFM!
    Почему у тебя два on_message()? И почему ты реализуешь команды в on_message(), если ты знаешь как пользоваться @bot.command()?
    Ответ написан
    Комментировать
  • Словарь или БД?

    Vindicar
    @Vindicar
    RTFM!
    Есть целый ряд вопросов.
    1.
    Скрипт делает большое количество запросов к различным апи

    Что-то мне подсказывает, что затык скорее будет тут, а не на записи. Ты делал замеры производительности и убедился, что bottleneck именно на сохранении данных?
    2. И да, вопрос персистентности принципиален. Наскоько страшно потерять набранные данные?
    3. А у тебя в оперативку данные влезут? Ты же понимаешь, что по исчерпании оперативки система начнёт свопиться, и вся производительность пойдёт коту под хвост? Вообще, если данные влезают в оперативку, это не такой уж большой объём для ввода/вывода.

    Попробуй сначала сбрасывать в БД напрямую. Простое решение часто оказывается достаточным. Я очень подозреваю, что так и будет.

    Если скорости всё же будет не хватать - клади в очередь в ОЗУ, параллельно перекидывай в БД. Если у тебя io-bound задача, то лучше писать асинхронный код, и использовать асинхронную же обёртку вокруг БД. Тогда у тебя хотя бы очередь будет расти медленнее

    Если и это не поможет - посмотри, можно ли писать данные блоками фиксированного размера в какой-нибудь бинарный файл. Если там будет минимум преобразований типов (например, число-строка), скорость должна быть приемлемая. Этот файл может читать отдельный процесс, и уже преобразовывать и сохранять в приемлемом виде. Но я бы не советовал так извращаться.
    Ответ написан
    2 комментария
  • Как скрыть программу от демонстрации экрана Python?

    Vindicar
    @Vindicar
    RTFM!
    Я бы сказал, не на питон. Тут надо перехватывать различные средства захвата экрана, т.е. по локоть залезать в кишки ОС.
    Малореальная задача.
    Ответ написан
    Комментировать
  • Можно ли в боте на python telebot сделать черный список если да то как?

    Vindicar
    @Vindicar
    RTFM!
    1. Хранить ID пользователей, попавших в список.
    2. При обработке любого события получать ID отправителя, проверять его на вхождение в список.
    Опционально 3. Добавить команды для управления чёрным списком.
    Ответ написан
    2 комментария
  • Discord.py как получить количество участников?

    Vindicar
    @Vindicar
    RTFM!
    Пройтись по списку гильдий, для каждой гильдии узнать количество участников.
    Но есть особенности для больших гильдий.
    Ответ написан
    Комментировать
  • Defender винды не допускает скачивание библиотеки в компе?

    Vindicar
    @Vindicar
    RTFM!
    Попробуй установить более старую версию pygame, наверняка она уже добавлена в исключения.
    Ответ написан
    Комментировать
  • Проверка, инвентаризация и аудит Linux машин, как можно узнать про установленный софт?

    Vindicar
    @Vindicar
    RTFM!
    Составить список популярных пакетных менеджеров и команд их вызова. Разные дистры используют разные менджеры (apt и yum встречаются чаще всего, ЕМНИП).
    Для каждого менеджера попытаться получить список установленных пакетов. Также иметь ввиду, что данного менеджера может и не быть на данной машине.
    Свести результаты в один список.

    Например, для дистров, которые используют apt (Debian и его потомки), это либо apt-mark showmanual, либо apt list --installed | grep -v 'automatic' (чтобы исключить пакеты, которые были поставлены как зависимости для других). Но и там будут пакеты, поставленные при установке ОС.

    Если хочется ну прямо супер детальный анализ... найти все файлы, помеченные как исполняемые. Потом узнать список установленных пакетов. Для каждого пакета узнать список установленных файлов. Исключить эти файлы из числа найденных. То, что останется, было установлено помимо менеджера пакетов и потому заслуживает более пристального внимания. Но сам понимаешь, это долго и жорко, ну и всё равно может не дать 100% покрытия. Грубо говоря, если некий файл script.sh не помечен как исполняемый, его всё равно можно запустить через bash script.sh.

    Я думаю, стоит обращать внимание, если в списке установленных пакетов есть wine, mono или виртуальные машины. В остальном... вряд ли что-то найдётся.
    Ответ написан
    Комментировать