Задать вопрос
  • Как скомпилировать файл python в exe?

    Vindicar
    @Vindicar
    DmitryNell, ну в случае обычного питона - это именно что подкаталог Scripts. Хотя, зависит от того, как ты его ставил, и как ставил библиотеку. Может лежать в папке профиля пользователя (AppData/Local вроде).
    Написано
  • Как в название одной переменной внести значение другой переменной?

    Vindicar
    @Vindicar
    1. Для ответов на ответы есть механизм комментариев. Используй его.
    2. А я говорю не про те переменные, которые были созданы раньше. Я говорю про совершенно посторонние. Если ты добавишь к именам префикс, это может помочь - но тебе придётся ОЧЕНЬ тщательно проверять, что никакая твоя переменная не начинается с этого префикса. Например, если у тебя все создаваемые переменные начинаются с "name_", но ты складываешь их имена в список name_list, то скорее всего в этом списке не будет лежать элемент "name_list" - а значит, пользователь сможет переопределить переменную name_list, и тем самым сломать твою логику проверки.
    3. Сфига ли? Ничто не мешает класть в словарь объекты ткинтер.
    Написано
  • Как асинхронно создать QR код?

    Vindicar
    @Vindicar
    Razraab, ну если очень на пальцах: асинхронная программа на питоне выполняется в одном потоке, от await'а до await'а. Когда попадает на await, текущая корутина приостанавливается, и программа выбирает другую - чей await выполнился, а значит, она готова продолжить выполнение. Вот так и скачет с одного места на другое. При этом обычно await связан с ожиданием операции ввода/вывода, явно или косвенно.

    Прикол в том, что если у тебя длинная синхронная операция, то между двумя await'ами пройдёт много времени - и всё это время программа не сможет переключиться на другие корутины, пусть даже они уже готовы продолжаться. А значит, сетевая программа не сможет реагировать на поступающие данные, пока твоя синхронная операция не закончится.

    Сколько времени будет "слишком много" - зависит от природы системы и нагрузки на неё. Но я бы сказал, что для фан проекта всё, что не очень часто выполняется и требует меньше секунды, можно игнорировать и выполнять синхронно. Вот, скажем, обращение к какому-нибудь сайту делать через синхронный requests не стоит, потому что это потенциально длительная операция. Лучше через асинхронный aiohttp.

    С доступом к БД можно поспорить - многие говорят, что она тоже должна быть асинхронной, но для малонагруженного проекта сойдёт и синхронный доступ, как мне кажется.

    А вот если надо сделать что-то длительное, но вычислительно нагруженное - вот тут и пригодится run_in_executor().

    В твоём случае мне кажется, не будет вреда от синхронной генерации кода.
    Написано
  • Почему не срабатывает проверка python tkinter?

    Vindicar
    @Vindicar
    У тебя какая-то безумная логика тут, разобраться тяжело. И потом, а почему только Йошкар-Оле такая честь? А если на другую, букву, скажем, Я, все города исчерпаны, и кто-то назвал город, заканчивающийся на Я? Что тогда?
    Может, стоит обобщить задачу?
    Написано
  • Как при закрытии главного окна закрывались все остальные окна?

    Vindicar
    @Vindicar
    PCgames2008, можно и так, да. Если ответ помог - отметь решением, или напиши свой и отметь его.
    Написано
  • Как принудительно завершить дополнительный поток (thread)?

    Vindicar
    @Vindicar
    gh37pt_chr, профессиональная деформация, ничего не поделаешь. =)
    Написано
  • Как заставить код работать?

    Vindicar
    @Vindicar
    Ну для начала попробуй передавать аргументы не строкой, а списком, как это сделано в докумнетации.
    ['gta_sa.exe', '-c', '-n', 'NickName', '-h', '51.15.205.209', '-p', '1337']
    Написано
  • Влияет ли socket.ReceiveBufferSize и socket.SendBufferSize хоть на что-то при использовании UDP?

    Vindicar
    @Vindicar
    По идее да - если размер буфера меньше размера отправляемой/принимаемой датаграммы, то передача/приём потерпят неудачу, так как UDP не позволяет "доделать" недоделанное.
    Написано
  • Почему при открытии сайта через парсер он не открывается?

    Vindicar
    @Vindicar
    через selenium undetected

    Значит, selenium недостаточно undetected.
    Написано
  • Как оптимизировать код на Python во времени?

    Vindicar
    @Vindicar
    Maksym122, это лучше в отдельный вопрос - только обязательно вместе со своим кодом, иначе вопрос могут снести как задание.
    Написано
  • Как оптимизировать код на Python во времени?

    Vindicar
    @Vindicar
    Maksym122, первое, что бросается в глаза: число перестановок.
    Пусть у тебя N=5 возможных цифр, и ты считаешь перестановки по k=3 цифры.
    Тогда число перестановок будет не (N-k-1)!, а N!/k!.

    И второй момент, не пойму, учёл ли ты его: число перестановок для цифр справа от текущей, надо умножать не на текущую цифру - 1. Нужно иметь ввиду, что некоторые значения текущей цифры могут быть уже "заняты" предыдущими цифрами. Упрощённо, если в перестановке первая цифра 1, то вторая цифра может начаться только с 2.
    Написано
  • Как оптимизировать код на Python во времени?

    Vindicar
    @Vindicar
    Maksym122, отредактируй комментарий, оформи код кнопкой </>. Без отступов код нечитаем же.
    Написано
  • Как оптимизировать код на Python во времени?

    Vindicar
    @Vindicar
    Непонятные слова можете перевести

    Задайся вопросом: кому нужен ответ на вопрос, нам или тебе?
    Чем выше читаемость вопроса, тем больше шанс получить ответ.
    От такого примечания разит ленью, если честно.
    Написано
  • Нужна помощь/совет - Telegram бот?

    Vindicar
    @Vindicar
    Что значит "переход на сайты в браузере"?
    Ты же не думаешь, что бот, запущенный невесть где, может вот так просто контролировать браузер на твоей машине?
    Написано
  • Как правильно настроить считывание клавиш?

    Vindicar
    @Vindicar
    ZeFi, ну тут не так-то просто ответить. Есть решение, которое я бы попытался реализовать, но оно более громоздкое, хотя и более гибкое. Если делать в лоб, как у тебя, то для небольшого числа состояний будет норм, но если состояний будет много, то задолбаешься.
    Почитай про паттерн "Состояние", мне кажется он тут может помочь.
    Написано
  • Как увеличить паузу между отправкой запроса и получением результата?

    Vindicar
    @Vindicar
    Rozalot, а если в инструменты разработчика в браузере залезть - что там происходит?
    Написано
  • Как увеличить паузу между отправкой запроса и получением результата?

    Vindicar
    @Vindicar
    Rozalot, тогда на сайте написано что-то странное.
    HTTP протокол устроен не так уж сложно. Клиент отправляет на сервер запрос такого вида:
    GET /урл_который_запрашиваешь HTTP/2.0
    Имя-Заголовка: ЗначениеЗаголовка
    ...  тут может быть много заголовков
    
    После пустой строки идёт тело запроса: данные формы или загружаемый файл, если они есть. Его длина определяется по переданному заголовку Content-Length.

    Когда клиент отправил весь запрос, в том числе тело, он не делает больше ни-че-го. Он сидит и ждёт, пока сервер не отправит ответ. У клиента просто нет механизмов, с помощью которых он мог бы "поторопить" сервер - максимум, что он может, это разорвать соединение по таймауту, не дождавшись ответа.
    Написано
  • Как увеличить паузу между отправкой запроса и получением результата?

    Vindicar
    @Vindicar
    Rozalot, а вот это должно было быть в вопросе!
    У тебя два последовательных обращения к сервису, а не одно.
    Первое обращение ставит задачу и получает подтверждение, второе спрашивает о состоянии задачи и получает результат задачи.
    И речь идёт именно о паузе между двумя обращениями, а не между запросом и ответом в рамках одного обращения.
    Воткни time.sleep(30.0) или что-то вроде перед вторым requests.get().
    Ну и да, почитай документацию - есть более правильный способ формирования URL с параметрами, чем использование f-строк.
    Написано
  • Почему не срабатывает if? как это пофиксить?

    Vindicar
    @Vindicar
    hardy_99, т.е. по существу возразить нечего?
    Написано
  • Срабатывает антивирус на скомпилированный файл python, как исправить?

    Vindicar
    @Vindicar
    Что делать? Поискать на этом форуме! Вопрос задавался неоднократно.
    Написано