Язык программирования Python

В результате обсуждения в списке рассылки в рамках воззвания я принял решение в этом учебном году «взять паузу» по части Linux и спланировать (в идеале — постоянный) спецкурс по языку программирования Python и его применению.

Для меня Python оказался в своё время настоящим открытием. Создавалось ощущение, что Гвидо планировал его по принципу «в других языках неудобно, надо сделать попроще». Основной упор в своей версии курса я постараюсь делать на вот этой простоте.

Несмотря на то, что предполагается изучать Python «с начала», я буду весьма благодарен, если на наших встречах появятся люди, у которых есть что рассказать про особенности, вкусности и прочие интересности языка.

По окончании курса предполагается сдача тестовых заданий (либо «большого» семестрового проекта) и экзамен в виде беседы над кодом.

Тематический план курса

В скобках указаны главы учебника (имеется слегка устаревший русский перевод), используемые при подготовке лекций.

Поскольку объём тем неодинаковый, разбивка на лекции и их именование пока черновые.

  1. Введение: история, основные свойства языка
    • Введение: история, основные свойства языка. Работа в командной строке и её настройка (13). Именование и видимость объектов, функция dir() (6.3). Подсистема помощи.

    • Понятие о счётчике ссылок, стандартных типах данных и свойства python на неформальных примерах (1, 2, 3)

  2. Условный оператор и операторы цикла
    • Решение домашних заданий, использование редактора. Понятие командного сценария (14). Условный оператор; нулевой объект как False (5.7). Операторы цикла и клауза else (4).

  3. Функции
    • Определение и свойства функций (4). Утиная типизация.

  4. Структуры данных и их свойства
    • Структуры данных и их свойства, в т. ч. не упомянутые в (5). Выражения-конструкторы.

  5. Модули и пакеты
    • Модули и пакеты (6)

  6. Классы: определение и использование
    • Классы (9)

  7. Классы: наследование
    • Наследование, утиная типизация (9)

    • Декораторы
  8. Исключения
    • Исключения (8)

  9. Итераторы и генераторы
    • Итераторы и генераторы (9.9 и далее)

  10. Стандартные модули
    • Стандартные модули (несколько примеров из 10 и 11)