Мой приятель Юра Селиванов попросил написать рекламный пост о его новом проекте MagicPython.
Это syntax highlighter для Sublime Text и Atom, который поддерживает все новые языковые конструкции Python 3.5 (async def и await например) плюс type annotations, string formatting и регулярные выражения.
Sublime поддерживает Python из коробки, но с Python 3 (а особенно с Python 3.5) у него проблемы. MagicPython понимает всё. Разметка шаблонов для форматирования строк и регулярок заслуживает отдельного упоминания — выглядит прекрасно и заметно облегчает жизнь.
Я сам использую ортодоксальный Emacs и переходить (пока) не собираюсь, но MagicPython работает исключительно хорошо и заслуживает доброго слова.
К слову, Юра (https://twitter.com/1st1) Python Core Developer и автор PEP 492 aka async/await — т.е. очень грамотный спец, который знает как делать качественные продукты.
Пользуйтесь с удовольствием.
P.S.
О редакторе Atom узнал только на этой неделе. На первый взгляд выглядит как Sublime но при этом Open Source. Уважаемые читатели, кто-нибудь его использует? Какие ваши впечатления?
Курс ориентирован на людей, уже знакомых с каким-либо языком программирования, например, Java или C++.
Лектор: Сергей Лебедев.
Домашние задания
Рекомендации к оцениванию домашних заданий. Оценивать по двум критериям: корректность и идиоматичность, то есть решение должно правильно работать и соответствовать руководству по стилю.
Хорошие книги про Python
David M. Beazley, Python Essential Reference, 2009.
Mark Lutz, Learning Python, 5th edition, 2013 (значительная часть 4-го издания также будет релевантной).
David M. Beazley, Brian K. Jones, Python Cookbook, 3rd edition, 2013.
Лекция 1. Начало.
Кто, когда и зачем придумал язык Python. Интерпретаторы языка. Синтаксис языка с высоты птичьего полёта. Интерактивная оболочка IPython.
Лекция 2. Всё, что вы хотели знать о функциях в Python.
Синтаксис объявления функций. Упаковка и распаковка аргументов. Ключевые аргументы и аргументы по умолчанию. Распаковка и оператор присваивания. Области видимости, правило LEGB, операторы global и nonlocal. Функциональное программирование, анонимные функции. Функции map, filter и zip. Генераторы списков, множеств и словарей. Немного о PEP 8.
Строковые литералы и сырые строки. Строки и Юникод. Основные методы работы со строками. Модуль string. Байты. Кодировки. Файлы и файловые объекты. Методы работы с файлами. Модуль io.
Лекция 5. Встроенные коллекции и модуль collections.
И снова встроенные коллекции: кортеж, список, множество, словарь — обход в глубину, обзор методов, примеры. Почти всё про модуль collections: именованные кортежи, счётчики, defaultdict, OrderedDict.
Синтаксис объявления классов. Атрибуты, связанные и несвязанные методы, __dict__, __slots__<
/code>. Статические методы и методы класса. Свойства, декоратор @property. Наследование, перегрузка методов и функция super. Декораторы классов. Магические методы.
Исключения, зачем они нужны и как их обрабатывать. Встроенные исключения и базовые классы BaseException и Exception. Операторы try...except..else..finally. Менеджеры контекста и модуль contextlib.
Лекция 8. Итераторы, генераторы и модуль itertools.
Два протокола итераторов: __next__ + __iter__ и __getitem__. Итераторы и цикл for, а также операторы in и not in. Генераторы, оператор-выражение yield. Генераторы как: итераторы, сопрограммы, менеджеры контекста. Модуль itertools.
Зачем тестировать? Тестирование в интерпретаторе и доктесты. Модуль unittest. Пакет py.test - на порядок лучше. Тестирование свойств и пакет hypothesis.
Измерение времени работы кода на Python с помощью модулей timeit, cProfile и line_profiler. Немного о NumPy. JIT и AOT компиляция кода на Python на примере Numba и Cython.
Настраивал очередной новый VDS сервер. Обнаружил, что после установки из стандартного шаблона хостинга, сервер без swap файла. Мониторинг zabbix после установки ругается на отсутствие свопа. Не стал отключать триггер, решил быстро добавить своп, в принципе, он может пригодиться.