Задать вопрос
Ответы пользователя по тегу Python
  • Появилась проблема при запуске приложения Python в Termux?

    pkg install busybox
    subprocess.call(["busybox", "clear"])

    Или:
    os.command("busybox clear")
    Хотя лично у меня при использовании второго способа ошибка:
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    AttributeError: module 'os' has no attribute 'command'
    Ответ написан
    Комментировать
  • Как сделать контекстное меню QMenu с закруглёнными углами?

    Попробуй нажать правой клавишей мыши на глафное окно, и выбрать Change Stylesheet. А в окно ввести этот код:

    QMenu {
        background-color: none;
    }


    А если ты не используешь редактор интерфейса, то вызови метод setStyleSheet для обьекта QMainWindow/QWidget. И тогда вставь этот код в кавычки:

    QMenu {background: none;}

    Что-то вроде этого:

    self.setStyleSheet("QMenu {background: none;}")
    Ответ написан
    Комментировать
  • Как заставить код работать?

    Ошибка, с которой вы столкнулись, возникает из-за того, что subprocess.run() неправильно интерпретирует вашу команду. Функция пытается запустить команду в рамках интерпретатора командной строки, и в данном случае интерпретатор воспринимает вашу строку как вызов CMake, а не gta_sa.exe.

    Это происходит потому что аргумент shell=True заставляет Python передать вашу команду в командную оболочку (shell), которая, в свою очередь, пытается её выполнить. Ошибка возникает, когда командная оболочка не может корректно разобрать вашу команду.

    Чтобы исправить эту проблему, можно разделить команду и аргументы в виде списка элементов, чтобы subprocess.run() мог корректно их обработать. Вот как можно изменить ваш код:

    import subprocess
    
    # Разделяем команду и аргументы в список
    command = ['gta_sa.exe', '-c', '-n', 'NickName', '-h', '51.15.205.209', '-p', '1337']
    
    # Вызываем subprocess.run без использования shell=True
    subprocess.run(command)


    В этом случае каждый аргумент передаётся отдельно, и subprocess.run() может корректно его обработать и передать исполняемому файлу. Этот подход является более безопасным и предпочтительным, так как shell=True может повышать риски безопасности, если аргументы командной строки недостаточно контролируются или получаются из внешних, не проверенных источников.

    Источник: ChatGPT
    Ответ написан
    Комментировать
  • Как сложить воедино все символы кроме первого после переделки в list?

    В вашем коде есть несколько ошибок, из-за которых функция не работает, как ожидается. Во-первых, переменная `c` используется как для итерации по символам строки, так и для накопления результата, что некорректно. Во-вторых, операция конкатенации строк не присваивается никуда, поэтому изменения не сохраняются. Давайте исправим ваш код:

    def check_for_command(s):
        if s[0] in prefix:
            c = ""  # Используем c только для накопления результата
            for l in range(1, len(s)):  # Начинаем с 1, т.к. пропускаем первый символ
                c += s[l]  # Конкатенируем символы в c
            return c
    
    prefix = ['!']  # Допустим, prefix - это список с одним символом '!'
    listed = list("!ping")
    print(check_for_command(s=listed))


    Этот код должен корректно обрабатывать вашу задачу и возвращать строку "ping". Обратите внимание, что я добавил переменную `prefix`, так как она использовалась в вашем коде, но не была определена. Я предположил, что это список символов, которые вы считаете префиксами.
    Ответ написан