Опыт разработчиков: assert как средство для валидации

Опыт разработчиков: assert как средство для валидации

Хочется сегодня осветить такой элемент синтаксиса как assert. assert - это специальная конструкция, позволяющая проверять предположения о значениях произвольных данных в произвольном месте программы.

Какая же польза от этой проверки? Представим что мы что-то пишем код, который получает данные из Базы Данных, производит обработку данных и загружает результат обратно. По замыслу этого кода мы ...

more ...

Синтаксис Python: работа с матрицами

Матрица - это, если утрировать, "табличка", N-мерный массив (чаще всего двумерный). Матрицы возникают не редко. Например, игровое поле, карта мира - тоже можно представить матрицей, да то же решето Эратосфена - тоже двумерный массив, или вообще - вложенные списки.

Это все создает необходимость знать как работать с матрицами и какими инструментами. Модулей для работы с этими объектами не мало, самые известные - стандартный math и ...

more ...

Учебные материалы: книга "Программируем коллективный разум"

Учебные материалы: книга "Программируем коллективный разум"

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

more ...

Таинство стандартной библиотеки: textwrap для сокращения текста

Таинство стандартной библиотеки: textwrap для укорочения текстов

При работе над Python Дайджестом - http://pythondigest.ru/ а именно при работе над "Колонкой автора" возникла такая задачка - уменьшить длину описания. Описание ссылок берется из RSS этой группы и оно иногда длинное.

Как же наиболее просто решить эту задачу? Самое простое - взять строку описания и взять, скажем первые 300 символов. Просто? Только вот ...

more ...




Полезные библиотеки: funcy - набор конструкций, которые упрощают код

Полезные библиотеки: funcy - набор конструкций, которые упрощают код

Есть ряд модулей, которые стоит ставить первыми. Этот набор у каждого свой. В моем наборе есть место для funcy. funcy - это набор мелких полезностей при работе с данными.

Например, можно создать бесконечный список, объединить список списков, объединение словарей, можно превращать вложенные структуры в плоские и наоборот.

Это не весь список возможностей - а ...

more ...

Извлечение информации: скачиваем список ссылок с помощью asyncio

Порой возникают рутинные задачи, которые не хочется делать руками. Примером такой задачи может являться - скачать множество страниц по ссылкам. Если 5 ссылок еще вручную сохранить можно, а если их 1000? или 6250, как было в моем случае.

На Python эту задачу можно с помощью модуля asyncio и aiohttp.

Вот такой код можно написать за пару минут:

import asyncio
import aiohttp ...
more ...

Тесты тесты тесты: coverage - узнаем сколько процентов кода покрыто тестами

Тесты тесты тесты: coverage - узнаем сколько процентов кода покрыто тестами

Юнит-тесты хороши, когда покрывают весь ключевой код. Однако если проект чуть больше, чем "Hello, world!", то оценить степень покрытия весьма проблематично. Существуют инструменты, которые помогают это делать. Например - coverage.py - модуль Неда Бачелдера.

coverage.py - написан на основе стандартной библлиотеки, может использоваться как из командной строки, так и из кода ...

more ...