IT-новости про Python, которые стоит знать

Собрали в одном месте самые важные ссылки
читайте нас в Twitter

     11.04.2019       Выпуск 277 (08.04.2019 - 14.04.2019)       Статьи

Использование Google Lighthouse для аудита веб-приложений

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

     10.04.2019       Выпуск 277 (08.04.2019 - 14.04.2019)       Статьи

Расширение mypy с помощью плагинов

Известно, что Python – язык с динамической типизацией. Очень просто писать DSL-подобные фреймворки, которые трудно разобрать инструментами статичной проверки типа. Несмотря на это, с помощью последних функциональных новшеств mypy, таких как protocols и literal types, а также с базовой поддержкой метаклассов и поддержкой дескриптора, мы можем чаще получать точные типы, однако по прежнему трудно избежать ложных срабатываний и других негативных факторов. Чтобы решить эту проблему и избежать необходимости кастомизировать систему типов для каждого фреймворка, mypy поддерживает систему плагинов.

     10.04.2019       Выпуск 277 (08.04.2019 - 14.04.2019)       Статьи

Алгоритмы сортировки в Python

Иногда данные, которые мы храним или извлекаем в приложении, могут находится в беспорядочном состояние. И иногда возникает необходимость упорядочивания данные прежде чем их можно будет эффективно использовать. За все эти годы учеными было создано множество алгоритмов сортировки для организации данных.

В этой статье мы рассмотрим наиболее популярные алгоритмы сортировки, разберем, как они работают, и напишем их на Python. Мы также сравним, как быстро они сортируют элементы в списке.

Для простоты реализации алгоритмов сортировать числа будем в порядке их возрастания.

     10.04.2019       Выпуск 277 (08.04.2019 - 14.04.2019)       Статьи

Процессим биткоин. Как устроена страница оплаты в B2BinPay

B2BinPay — криптовалютная платежная система с множеством связанных бэкэндов приложений, аналитики, нод, очередей, но лишь одной UI-страницей, которую видит конечный пользователь. К ней предъявляются высокие требования относительно удобства в использовании. Несмотря на кажущуюся простоту страницы, команде разработчиков было бы интересно поделиться тем, как она устроена изнутри.

Для понимания бизнес-процессов потребуется погрузиться в предметную область. Для читателей, которые ещё не знают, что такое криптовалюта, блокчейн и адрес, мы составили короткие и понятные определения под катом.

     09.04.2019       Выпуск 277 (08.04.2019 - 14.04.2019)       Статьи

Как работает цикл for в Python

В этой статье мы разберем, работу цикла for в Python.

Мы начнем с пары основных примеров и их синтаксиса. Далее обсудим, когда может быть полезен блок else, связанный с циклом for. Затем мы разберем итерактивные объекты (iterable), итераторы (iterator) и протокол итератора. Также узнаем, как создавать собственные итераторы и итерируемые объекты. После этого мы обсудим, как цикл for реализован с использованием итерактивных объектов и итераторов. Потом мы рассмотрим реализацию логики цикла for, используя цикл while и используя протокол итератора.
И наконец, для тех, кому интересно, мы разберем простой цикл for и пройдемся по инструкциям, которые интерпретатор Python выполняет при выполнении цикла for. Это должно помочь понять, что именно происходит внутри, во время работы цикла for.

     09.04.2019       Выпуск 277 (08.04.2019 - 14.04.2019)       Статьи

Прорабатываем навык использования группировки и визуализации данных в Python

Сегодня будем прорабатывать навык использования средств группирования и визуализации данных в Python. В предоставленном датасете на Github проанализируем несколько характеристик и построим набор визуализаций.

     09.04.2019       Выпуск 277 (08.04.2019 - 14.04.2019)       Статьи

Подборка @pythonetc, март 2019

Это десятая подборка советов про Python и программирование из авторского канала @pythonetc.

     09.04.2019       Выпуск 277 (08.04.2019 - 14.04.2019)       Статьи

[Из песочницы] Unittest и абстрактные тесты

Unittest — наверное самый известный фреймворк для написания тестов в Python. Он очень прост в освоении и его легко начать использовать в вашем проекте. Но ничто не бывает идеальным. В этом посте я хочу рассказать об одной возможности, которой лично мне (думаю, не одному) не хватает в unittest.

     09.04.2019       Выпуск 277 (08.04.2019 - 14.04.2019)       Статьи

Для чего и как мы скрываем госномера автомобилей в объявлениях Авито

В конце прошлого года мы стали автоматически скрывать номера автомобилей на фотографиях в карточках объявлений на Авито. О том, зачем мы это сделали, и какие есть способы решения таких задач, читайте в статье.

     08.04.2019       Выпуск 277 (08.04.2019 - 14.04.2019)       Статьи

Введение в тестирование в Python

Перевод статьи  Anthony Shaw: Getting Started With Testing in Python Статья будет интересна тем кто еще мало знаком с тестированием в Python и быстро получить обзорные знания для дальнейшего изучения.

Это руководство предназначено для тех, кто уже имеет опыт написания приложений в Python, но еще не написал ни одного теста.

     05.04.2019       Выпуск 276 (01.04.2019 - 07.04.2019)       Статьи

Использование Python для формирования отчетов в отдельно взятой компании

Эта история случилась в реальной компании, несмотря на то, что некоторые имена и события вымышлены.

Слава был рядовым разработчиком в небольшой фирме в городе N. Фирма занималась предоставлением услуг образовательным организациям. В наличии было несколько приложений, которые необходимо поддерживать, дорабатывая помаленьку, понемногу. Вот только начальство Славы не верило в его усилия и то, что он ест свой хлеб не просто так. Кроме того, начальство в информационных технологиях не так чтобы очень, но хотело понимать, что делают сотрудники и какая продуктивность у отдела продаж (который надо сказать состоял из одного с половиной человека).

Хитрым глазом смотрело начальство на менеджера по продажам и вопрошало: а что ты сделал сегодня для Родины. Продавец отвечал: провел столько то встреч, предлагал услуги стольким то людям. Руководство пришло к Славе и говорит: скажи, правду ли говорят сотрудники или так, отсебятину несут. Нужна статистика.

     04.04.2019       Выпуск 276 (01.04.2019 - 07.04.2019)       Статьи

Как создать свой итератор в Python

Некоторое время назад я написал статью о протоколе итераторов, который поддерживает цикл for в Python. Одна вещь, которую я пропустил в этой статье, это то, как создавать свои собственные итераторы.

В этой статье я собираюсь рассказать, зачем создавать свои собственные итераторы, а затем покажу, как это сделать.

     04.04.2019       Выпуск 276 (01.04.2019 - 07.04.2019)       Статьи

Python: range не является итератором!

После моего выступления в Loop Better на PyGotham 2017 кто-то задал мне отличный вопрос: iterator – это lazy iterable (iterable это итерируемый объект а lazy означает отложенное действие прим. переводчика), и range – это lazy iterable в Python 3? Является ли range итератором?

К сожалению, я не помню имя человека, который задал мне этот вопрос. Я помню, что говорил что-то вроде «о, я люблю этот вопрос!»

Мне нравится этот вопрос, потому что range объекты в Python 3 (xrange в Python 2) действительно объекты с отложенным действием то есть lazy, но range объекты не являются итераторами, и это то, что, как я вижу, люди часто путают.

В прошлом году я много раз слышал, что новички в Python, опытные программисты Python и даже другие инструкторы Python ошибочно называют range объекты в Python 3 итераторами. Это особенность часто путает многих людей.

     03.04.2019       Выпуск 276 (01.04.2019 - 07.04.2019)       Статьи

Моделируем алгоритм MUSIC для задач определения направления прихода электромагнитной волны

Начну своё вступление издалека. Давным-давно, в далеких 2016-2017 годах вашему покорному слуге удалось съездить на полугодовое обучение в далекий город Ильменау (Германия), где он успешно (в общем и целом) закончил магистерскую программу Communications and Signal processing. Программа оказалась не из простых, однако сейчас о ней вспоминать даже приятно. Иногда...

 

Так вот, по окончании этого обучения, кроме диплома, у меня на руках осталось довольно много различных материалов, не поделиться которыми мне показалось неправильным.

Один из таких материалов перед вами.

     03.04.2019       Выпуск 276 (01.04.2019 - 07.04.2019)       Статьи

Monkey Patching в Python: объяснение с примерами

В этой статье рассказано о monkey patching (обезьяний патч см wiki), то есть о том, как динамически обновлять поведение кода во время выполнения. Мы также рассмотрим некоторые полезные примеры monkey patching в Python.

     03.04.2019       Выпуск 276 (01.04.2019 - 07.04.2019)       Статьи

Экзотические структуры данных: Modified Merkle Patricia Trie

Примерно к этому сводятся комментарии большинства статей про прохождение технических интервью. Основной тезис, как правило, заключается в том, что всё так или иначе используемое уже реализовано по десять раз и с наибольшей долей вероятности заниматься этим рядовому программисту вряд ли придётся. Что ж, в какой-то мере это верно. Но, как оказалось, реализовано не всё, и мне, к сожалению (или к счастью?) создавать Структуру Данных всё-таки пришлось.

     03.04.2019       Выпуск 276 (01.04.2019 - 07.04.2019)       Статьи

Анализ статистики по рекламным кампаниям — создаем в DataFrame новую метрику (python)

Для маленьких клиентов (а также для клиентов, у которых сложная для анализа многоканальность) я слежу за чистым CPC (клики, CTR, цена клика, отказы).

Задача: понять какая рк работает эффективней и, исходя из этого, отредактировать ставки.

Для этого я в аналитике использую стоимость полезного клика (CUC — Cost per Useful Click). Данный показатель учитывает стоимость клика, и показатель отказов.

     02.04.2019       Выпуск 276 (01.04.2019 - 07.04.2019)       Статьи

Введение в потоки в Python

Статья рассказывает о базовом использование потоков в Python. Что это такое и как правильно с ними работать. Так же если вы думаете что для базового использования потоков достаточно знать как запустить threading.Thread, то это статья именно для вас. На самом деле все чуть более интереснее…. Оригинал статьи: Jim Anderson An Intro to Threading in Python