Синтаксис Python: множества (set)

Множество в python - "контейнер", содержащий не повторяющиеся элементы в случайном порядке.

>>> a = set()
>>> a
set()
>>> a = set('hello')
>>> a
{'h', 'o', 'l', 'e'}
>>> a = {'a', 'b', 'c', 'd'}
>>> a
{'b', 'c', 'a', 'd'}
>>> a = {i ** 2 for i in range(10)} # генератор множеств
>>> a
{0, 1, 4, 81, 64, 9, 16, 49, 25, 36}
>>> a = {}  # А так нельзя!
>>> type(a ...
more ...

Синтаксис Python: оператор yield

При чтении чужого кода можно столкнутся с многими непонятными конструкциями. А сейчас хочу коротко осветить такую конструкцию как yield. Yield - это ключевое слово которое используется так же, как и слово return. Разница в том, что функция при этом начинает возвращать генератор вместо значения.

def generator():
    for i in (1, 2, 3):
        yield i
g = generator()
print(g)
<generator object generator ...
more ...

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

Абстрактные базовые классы и интерфейсы — близкие по назначению и смыслу сущности. Как первые, так и вторые представляют собой своеобразный способ документирования кода и помогают ограничить (decouple) взаимодействие отдельных абстракций в программе (классов).

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

more ...


Полезные инструменты: pycallgraph

Идеальный программист не пишет тесты, потому что у него не бывает ошибок. А сверх идеальный программист даже код не пишет.

А так как идеальных нет, поэтому бывают медленные куски программы. Точнее как, обычно это называем "тормозит". Чтобы понять какое место тормозит можно воспользоваться модулем pycallgraph - https://github.com/gak/pycallgraph

Данный модуль строит красивые графики-графы, в которых цветом выделяет медленные ...

more ...

Python на службе народа: создаем бота для Telegram

Развитие общества обладает цикличностью. Лет 30-25 назад были популярны чаты, лет 15-10 назад тоже чаты были на коне. И сейчас снова. Только теперь это называют словом мессенджер.

Хочется привести информацию о создании бота для мессенджера Telegram.

24 июня разработчики Telegram открыли платформу для создания ботов.

Прежде всего, бот для Telegram — это по-прежнему приложение, запущенное на вашей стороне и осуществляющее запросы ...

more ...

Полезные инструменты: IPython

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

IPython весьма удобен для демонстраций и экспериментов. В отличие от стандартного REPL, IPython может запоминать введенные команды. А IPython Notebook позволяет сохранить все свои эксперименты в файл, после чего залить на сервис для просмотра другими. Даже github поддерживает отображение этих "книг ...

more ...

Функциональный Python: пробуем функциональщину

Существует два основных подхода в программировании - декларативный и императивный. Каждый из них имеет свои достоинства и недостатки. Крайнее время декларативный подход, а в частности функциональное программирование стало весьма популярным. Давайте ознакомимся с ним:

more ...


Полезные библиотеки: генерация html с помощью Yattag

В PyPi репозитории не один шаблонизатор HTML. Но далеко не всегда хочется тащить его за собой. В этом случае нам поможет модуль Yattag - это библиотека (DSL по сути), которая позволяет в Python-way формате писать HTML/XML файлы

Ознакомьтесь с туториалом: http://www.yattag.org/#tutorial

more ...