• Как зациклить код в Python?

    Vindicar
    @Vindicar
    RTFM!
    Почитай про цикл while.
    Ответ написан
    Комментировать
  • Как изменить формат logger.info(...) в str или передать в переменную(python)?

    Vindicar
    @Vindicar
    RTFM!
    Никак, логгеры не возвращают сообщения об ошибках.
    Пиши класс-потомок logger.Handler который будет сохранять сообщения в БД, и назначай экземпляр этого хандлера нужным логам.
    Подробности в доках на модуль logging, но если кратко - там разделение обязанностей. Есть Formatter, который занимается превращением записи в строку, есть Handler, который пихает полученную строку в файл или ещё куда, есть Filter, который реализует умную фильтрацию записей, ну и т.д.
    Ответ написан
    1 комментарий
  • Возникает ошибка при вызове своего асинхронного метода(Pyrogram)?

    Vindicar
    @Vindicar
    RTFM!
    attached to a different loop

    Ты или мешаешь асинхронность с многопоточностью, или какую-то подобную глупость делаешь. Без полного кода бота сказать затруднительно.
    Ответ написан
  • Что выполняет эта функция?

    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 комментария