- PVSM.RU - https://www.pvsm.ru -

Программирование на Python — курс для желающих узнать о нём больше или изучить ещё один язык программирования

"The joy of coding Python should be in seeing short, concise, readable classes that express a lot of action in a small amount of clear code — not in reams of trivial code that bores the reader to death."
Guido van Rossum

Программирование на Python — курс для желающих узнать о нём больше или изучить ещё один язык программирования - 1
Python [1] — язык программирования, на котором приятно писать и который приятно читать. Мы предлагаем тринадцать лекций осеннего курса [2] CS центра, чтобы посмотреть вглубь языка и попробовать понять, как пользоваться всеми его возможностями. Лекции читает Сергей Лебедев [3], разработчик в компании JetBrains и преподаватель в Computer Science Center.

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

Фотография сделана осенью 2014 года в Страсбурге, за две недели до начала первого прочтения этого курса.

Лекции курса

Видеозаписи всех лекций в плейлисте [4] на YouTube.

Начало [5]

Кто, когда и зачем придумал язык Python. Интерпретаторы языка. Синтаксис языка с высоты птичьего полёта. Интерактивная оболочка IPython.

Всё, что вы хотели знать о функциях в Python [6]

Синтаксис объявления функций. Упаковка и распаковка аргументов. Ключевые аргументы и аргументы по умолчанию. Распаковка и оператор присваивания. Области видимости, правило LEGB, операторы global и nonlocal. Функциональное программирование, анонимные функции. Функции map, filter и zip. Генераторы списков, множеств и словарей. Немного о PEP 8.

Декораторы и модуль functools [7]

Синтаксис декораторов. Декораторы с аргументами, без аргументов. Примеры использования декораторов. Модуль functools.

Строки, байты, файлы и ввод/вывод [8]

Строковые литералы и сырые строки. Строки и Юникод. Основные методы работы со строками. Модуль string. Байты. Кодировки. Файлы и файловые объекты. Методы работы с файлами. Модуль io.

Встроенные коллекции и модуль collections [9]

И снова встроенные коллекции: кортеж, список, множество, словарь — обход в глубину, обзор методов, примеры. Почти всё про модуль collections: именованные кортежи, счётчики, defaultdict, OrderedDict.

Классы, часть 1 [10]

Синтаксис объявления классов. Атрибуты, связанные и несвязанные методы, __dict__, __slots__. Статические методы и методы класса. Свойства, декоратор @property. Наследование, перегрузка методов и функция super. Декораторы классов. Магические методы.

Исключения и менеджеры контекста [11]

Исключения, зачем они нужны и как их обрабатывать. Встроенные исключения и базовые классы BaseException и Exception. Операторы try...except..else..finally. Менеджеры контекста и модуль contextlib.

Итераторы, генераторы и модуль itertools [12]

Два протокола итераторов: __next__ + __iter__ и __getitem__. Итераторы и цикл for, а также операторы in и not in. Генераторы, оператор-выражение yield. Генераторы как: итераторы, сопрограммы, менеджеры контекста. Модуль itertools.

Модули, пакеты и система импорта [13]

Модули. Операторы import и from ... import. Пакеты. Относительный и абсолютный импорт. __init__-фасад. И снова оператор import — обход в глубину.

Классы, часть 2 [14]

Дескрипторы: что-как-зачем. Конструктор __new__, класс type и метаклассы. Наследование встроенных типов. Модули abc и collections.abc.

Тестирование [15]

Зачем тестировать? Тестирование в интерпретаторе и доктесты. Модуль unittest. Пакет py.test — на порядок лучше. Тестирование свойств и пакет hypothesis.

Быстрее, Python, ещё быстрее [16]

Измерение времени работы кода на Python с помощью модулей timeit, cProfile и line_profiler. Немного о NumPy. JIT и AOT компиляция кода на Python на примере Numba и Cython.

Многопоточность и GIL [17]

Модули threading, queue и concurrent.futures. Использование потоков для параллельных вычислений на Python. GIL. Параллельность и конкурентность. Модуль asyncio. Модуль multiprocessing.

Что дальше

Практические задания этого курса доступны только студентам CS центра, учащиеся набираются [18] раз в год, весной. Тем, кто по каким-то причинам не может проходить обучение в центре, мы рекомендуем не останавливаться на просмотре видео курса, а попробовать решать на Python свои повседневные задачи, ведь главное в изучении языка — это практика.

Для разных языков есть списки хороших библиотек, например, Awesome Java [19], Awesome R [20] и Awesome C++ [21]. Конечно же, такой список есть и для Python [22]. В следующий раз, когда вам потребуется библиотека для работы с базой данных, логирования или анализа изображений, смело идите в соответствующий раздел списка за вдохновением.

Автор: СПБАУ

Источник [23]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/python/116434

Ссылки в тексте:

[1] Python: http://python.org

[2] осеннего курса: https://compscicenter.ru/courses/python/2015-autumn/

[3] Сергей Лебедев: https://github.com/superbobry

[4] в плейлисте: https://youtu.be/5V7XG1mGiHc?list=PLlb7e2G7aSpTTNp7HBYzCBByaE1h54ruW

[5] Начало: https://compscicenter.ru/courses/python/2015-autumn/classes/1364/

[6] Всё, что вы хотели знать о функциях в Python: https://compscicenter.ru/courses/python/2015-autumn/classes/1386/

[7] Декораторы и модуль functools: https://compscicenter.ru/courses/python/2015-autumn/classes/1387/

[8] Строки, байты, файлы и ввод/вывод: https://compscicenter.ru/courses/python/2015-autumn/classes/1388/

[9] Встроенные коллекции и модуль collections: https://compscicenter.ru/courses/python/2015-autumn/classes/1476/

[10] Классы, часть 1: https://compscicenter.ru/courses/python/2015-autumn/classes/1477/

[11] Исключения и менеджеры контекста: https://compscicenter.ru/courses/python/2015-autumn/classes/1520/

[12] Итераторы, генераторы и модуль itertools: https://compscicenter.ru/courses/python/2015-autumn/classes/1542/

[13] Модули, пакеты и система импорта: https://compscicenter.ru/courses/python/2015-autumn/classes/1556/

[14] Классы, часть 2: https://compscicenter.ru/courses/python/2015-autumn/classes/1559/

[15] Тестирование: https://compscicenter.ru/courses/python/2015-autumn/classes/1560/

[16] Быстрее, Python, ещё быстрее: https://compscicenter.ru/courses/python/2015-autumn/classes/1561/

[17] Многопоточность и GIL: https://compscicenter.ru/courses/python/2015-autumn/classes/1562/

[18] набираются: https://compscicenter.ru/enrollment/

[19] Awesome Java: https://github.com/akullpp/awesome-java

[20] Awesome R: https://github.com/qinwf/awesome-R

[21] Awesome C++: https://github.com/fffaraz/awesome-cpp

[22] Python: https://github.com/vinta/awesome-python

[23] Источник: https://habrahabr.ru/post/280426/