Программирование на 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.
Многопоточные приложения. Global Interpreter Lock. Многопроцессные приложения. Сравнительный обзор библиотек для GUI. Управление пакетами в Python.
P.S. К слову о хвостовой рекурсии -- http://habrahabr.ru/post/158385/
Web фреймворки и темплейтные языки Python. Django, Jinja, Mako.
Разговор о модулях для научных вычислений в языке Python. scipy, numpy, matplotlib, PIL
Модули расширения: Способы создания модулей расширения на языке C/C++.
Пример создания модуля.
Анализатор синтаксиса питона pylint.
Отладка и оптимизация: отладчик pdb и модуль profile.