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

    mayton2019
    @mayton2019
    Bigdata Engineer
    ООП - это более аккуратная разработка с использованием приципов SOLID, KILL, YAGNI (это аббревиатуры) и если вы - 1 разработчик то вам будет очень сложно дисциплинировать себя чтобы следовать ООП. По смыслу это выглядит - как очень сильная формализация логики чтобы не было 1 длинной простыни кода а были небольшие сущности по 5-7 строк и каждая из них обладала бы 1 единственной зоной ответственности.

    По большему счету польза от ООП проявляется на очень крупных проектах (больше десятков тыщ строк кода) и где много разрабов одновременно кодят и вносят изменениея.

    Если у автора - мелкий pet-проект то возможно ООП ему и не нужно.
    Ответ написан
    6 комментариев
  • Есть ли полиморфизм в языках с динамической типизацией?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Полиморфизм - относится к базовым возможностям ООП. Тоесть к способности рассматривать объекты сквозь призму базового интерфейса.

    Типизация - это обычно свойство компиллятора (или рантайма) по определению выводу типа каждой переменной.

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Предположительно он использовал pip (python package index) для установки дополнительных зависимостей.

    Как узнать что он ставил - скорее всего только один вариант. Запустить его скриптик. Подождать первой ошибки.
    И потом доустановить пакеты которых не хватает.
    Ответ написан
    Комментировать
  • Как найти такие 2 числа в последовательности, сумма которых будет кратна m?

    mayton2019
    @mayton2019
    Bigdata Engineer
    1) Поскольку в задаче нет ограничения на память - то мы можем спокойно использовать мемоизацию для хранения нужных нам ответов.
    2) В процессе ввода (предполагается что ввод будет неспешный и задумчивый) чисел {n} мы строим хеш-таблицу всех возможных сочетаний пар {m(i),m(j)} где ключами будет кратность суммы этой пары. Здесь ключом будет сет чисел которые кратны этой сумме. Для простоты - табличку можно денормализовать и хранить несколько записей на 1 ключ. Например для {20,4}, будет кратность 2, 3, 4, 6, 8.
    3) Еще для упрощения можно отбросить составные числа ключа (4, 6, 8) и хранить цепочку простых.
    4) У этой задачи - бесконечное направление оптимизаций системы хранения этой таблицы. Зависит от дерзости автора. А он ... как видно парень очень суровый и дерзкий.
    Ответ написан
    Комментировать
  • Как декомпилировать .pyc Python?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Надо точно установить версию. Покажи первые 8 байт твоего .pyc.

    Опираясь на эту статью https://nedbatchelder.com/blog/200804/the_structur...
    Ответ написан
  • Какую БД выбрать для маленького файлового сервиса?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Вопрос в перспективе тянет на экспертную систему по выбору БД.

    При данной постановке - можно брать любую документно-ориентированную. Все одинаково подходят.
    Но если основной контент (80% берем по Паретто) это файлы - то можно брать Amazon S3, в дальнейшем с перспективой трансформировать это в DynamoDb если понадобятся транзакции или в Amazon Document Db (он же Mongo) если понадобится тонкая работа с атрибутами документов (или файлов).

    Автор должен понять что в это вопросе нет единого правильного решения. Есть просто некая сравнительная табличка где есть набор фичей с одной стороны и набор DBMS с другой и нет такого покрытия которое бы закрыло ВСЕ фичи.
    Ответ написан
    Комментировать
  • Как зашифровать текст?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Несколько важных поинтов. Во первых у автора - путаница в голове. RSA относится не к шифрующим а к подписывающим и проверяющим алгоритмам. В учебных книжках описывают юзкейс как Алиса передает сообщение Бобу но это просто учебный пример. В реальных протоколах типа SSL работает бутерброд из двух технологий. Первое - это процесс рукопожатия автентификации где выясняется кто есть кто. Здесь может быть RSA. И обмен сеансовыми ключиками для симметрички. И второе - это открытие симметричного шифрованного канала где уже работает другой алгоритм типа AES/Blowfish.

    И второй поинт. Зачем. Если просто разработать систему - то надо брать готовое под Питон. Если надо разбираться - то продуктовые шифры и алгоритмы очень сложны. Можете просидеть много месяцев. Остановитесь на учебных максимом до DES.
    Ответ написан
    Комментировать
  • Как в рамках AWS lambda создать zip архив из папки на S3 на python?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Упирается в возможности Питона и AWS-Lambda. Насколько я помню там есть ограничения на память для лямбды и лимит на время для 1 сеанса хендлера. Но я думаю что можно решить эту задачу. Библиотеки сжатия должны быть потоковые. Тоесть без накопления результата в памяти. И степень сжатия надо поставить на store чтоб было максимально быстро.

    Вобщем в рамках этого форума почти невозможно обсудить т.к. нужны сорцы и хотя-бы штук 10 экспериментов. Пробуйте. Я думаю что это решаемо.
    Ответ написан
    Комментировать
  • Есть ли библиотека python/c# для сканирование печатных тестов?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Есть опенсорцная библиотека Tesseract. Как обращаться к ней напрямую из Python я не знаю. Но возможность такая должна быть. Убежден.
    Ответ написан
    Комментировать
  • Python или Java код, проще сопровождать в больших проектах?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Оба языка вполне себе годные. Но так вопрос ставить нельзя. Ценнось языка - это как ложка к обеду. Нужно брать тот который вы знаете лучше.

    Чисто технически Java - более строгий язык. С точки зрения типизации. Следовательно в фазе компилляции отловит большинство ошибок который Питон не заметит. И с точки зрения перформанса. Java отстает где-то на 20% от С++ кода по скорости исполнения. Питон - во много раз медленнее. На чистой алгоритмизации. Особенно если вы не использовали никаих внешних библиотек на сях.
    Ответ написан
    Комментировать
  • Как из текста вытащить определения слов?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Это сложная и интересная тема. На выходе ее должна стоять семантическая сеть. И есть у меня сомнения что на тостере кто-то даст окончательный совет. Да и вообще нельзя тут дать совет. Тут нужно направление. Как. Кодить самому? Или взать опенсорцную библиотеке? Или купить библиотеку.

    Мне также интересно откуда проистекает это техническое задание. Как минимум - дипломный проект.
    Ответ написан
  • Каким образом подавать входные данные в нейросеть?

    mayton2019
    @mayton2019
    Bigdata Engineer
    16 битный звуковой сигнал не годится для подачи на вход НС. Его необходимо перевести в АЧХ и еще побить на некоторые атомарные отсчеты наподобие звуков или букв или музыкальных нот. Как побить - это тема отдельного топика и ее надо изучать отдельно. В вашем случае - нельзя рассматривать нейро-сеть как мясорубку куда кидают что ни попадя. Информация должна быть дискретной и осмысленной. Тоесть если вы обучаете НС с учителем то вы должны предъявить сети на вход частотную характеристику ноты ДО первой октавы например и в качестве обучающего сигнала и дать подсказку что это есть нота ДО. Если будете подавать на вход белый шум - то сеть ничему не научится.
    Ответ написан