Программирование на Python

Санкт-Петербург, осень 2012

Описание

Курс является введением в язык программирования Python. На первых лекциях курс знакомит с основами языка и языковыми конструкциями в языке. Далее курс рассматривает не только сам язык, и его синтаксис, но так же приложения языка в научной области и знакомство с некоторыми Web Frameworks. В ходе работы над заданиями студенты научатся создавать свои полноценные приложения с использованием языка Python.

Преподаватели

Список лекций

Введение

Почему именно Python? История возникновения. Python. Какой это язык? Что такое динамический язык программирования? Что такое интерпретатор? Запуск интерпретатора. REPL (Read-eval-print loop) — интерактивная среда программирования. Help в интерактивном режиме. Синтаксис: числа, комплексные числа. Python в качестве калькулятора. Строки. И зачем их так много в Питоне? Инструкция print. The Zen of Python

Управляющие конструкции. Списки. Кортежи

Присваивания или не все так просто? Множественное присваивания. Логические выражения. Управляющие конструкции. Основные управляющие инструкции языка Python: if-elif-else, while, for. Отличия таких инструкций от уже известных из других языков. Ветвь else для циклов. Последовательные структуры данных: списки и кортежи. Абстракция.. А что внутри Функции range(), xrange(). Import's

Функции. Функциональное программирование

Функции: как их определять? Передача параметров в функцию; Параметры по-умолчанию. Специальные аргументы -- *args и **kwargs. Вызов функции с распаковкой аргументов. Локальные и глобальные переменные. Области видимости. Resolve scope. Лямбда-функции. Замыкания. Функции высших порядков.

Объектно-ориентированное программирование. Классы

Классы и их синтаксис. Подробнее про области видимости и пространства имен. Объекты-классы. Объекты-экземпляры. Объекты-методы. Наследование и множественное наследование. Приватные переменные.

Модули. Исключения

Ошибки или Исключения? Типы исключений. Генерация и обработка исключений. Страхование от ошибок. Порядок действий при обработке исключений. Создание и использование модулей. Поиск модулей. Стандартные модули. Компилированные модули. Подробнее про работу import. Ввод/вывод. Запись и чтение.

Всякое о языке

Итераторы. Генераторы и выражения-генераторы. Декораторы.

Типизация и метапрограммирование

Иерархия типов. Курица или яйцо -- object или type. Объекты-типы. Пользовательские типы. Отношения объектов в Python. Атрибуты и методы. Функции vs. методы. Дескрипторы. Представление типов в интерпретаторе. Виртуальная машина Python.

Ловушки

Ловушки языка Python. Отличия python 2 от 3.

Многопоточность, UI и установка библиотек

Многопоточные приложения. Global Interpreter Lock. Многопроцессные приложения. Сравнительный обзор библиотек для GUI. Управление пакетами в Python.

P.S. К слову о хвостовой рекурсии -- http://habrahabr.ru/post/158385/

Web в Python

Web фреймворки и темплейтные языки Python. Django, Jinja, Mako.

Scientific Python

Разговор о модулях для научных вычислений в языке Python. scipy, numpy, matplotlib, PIL

Модули расширения

Модули расширения: Способы создания модулей расширения на языке C/C++.

Пример создания модуля.

Анализатор синтаксиса питона pylint.

Отладка и оптимизация: отладчик pdb и модуль profile.