Python
Код EA-Python
Длительность 5 д. (40 ч.)
Подготовка к экзаменам
Стоимость, грн без НДС 6000 грн
Записаться

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

Приобретаемые навыки

  • разрабатывать программы на языке программирования Python;
  • создавать программы на python как в процедурном, так и в объектно-ориентированном стиле;
  • разрабатывать системные скрипты;
  • использовать в своих скриптах стандартные и сторонние библиотеки;
  • использовать для установки сторонних библиотек виртуальное окружение virtualenv;
  • работать с файлами, базой данных MySQL и SQLite;
  • создавать веб-сайты на python.

Модуль 1. Введение в программирование на языке Python

  • Что такое Python?
  • Как описать язык?
  • История языка Python
  • Программа на Python
  • Основные алгоритмические конструкции
    • Последовательность операторов
    • Оператор условия и выбора
    • Циклы
    • Функции
    • Исключения
  • Встроенные типы данных
    • Тип int и long
    • Тип float
    • Тип complex
    • Тип bool
    • Тип string и тип unicode
    • Тип tuple
    • Тип list
    • Последовательности
      • Некоторые методы для работы с последовательностями
      • Взятие элемента по индексу и срезы
    • Тип dict
    • Тип file
  • Выражения
  • Имена
  • Стиль программирования

Модуль 2. Основные стандартные модули Python

  • Понятие модуля
  • Модули в Python
  • Встроенные функции
    • Функции преобразования типов и классы
    • Числовые и строковые функции
    • Функции обработки данных
    • Функции определения свойств
    • Функции для доступа к внутренним структурам
    • Функции компиляции и исполнения
    • Функции ввода-вывода
    • Функции для работы с атрибутами
    • Функции-”украшатели” методов классов
  • Обзор стандартной библиотеки
    • Сервисы периода выполнения
    • Модуль sys
    • Модуль copy
    • Модули math и cmath
    • Модуль random
    • Модуль time
    • Модуль sets
    • Модули array и struct
    • Модуль itertools
    • Модуль locale
    • Модуль gettext
  • Поддержка цикла разработки
    • Модуль pdb
    • Модуль profile
    • Модуль unittest
    • Модуль pydoc
    • Пакет docutils
    • Пакет distutils
  • Взаимодействие с операционной системой
    • Модуль os
    • Модуль stat
    • Модуль stat
  • Обработка текстов
  • Многопоточные вычисления
  • Хранение данных. Архивация
    • Модуль pickle
    • Модуль shelve
    • Модули anydbm и gdbm
    • Модуль csv
  • Платформо-зависимые модули
  • Поддержка сети. Протоколы Интернет
  • Поддержка Internet. Форматы данных
  • Python о себе
  • Графический интерфейс

Модуль 3. Элементы функционального программирования

  • Что такое функциональное программирование?
  • Функциональная программа
  • Функция: определение и вызов
  • Рекурсия
  • Функции как параметры и результат
    • Функция apply()
  • Обработка последовательностей
    • Функции range() и xrange()
    • Функция map()
    • Функция filter()
    • Списковые включения
    • Функция sum()
    • Функция reduce()
    • Функция zip()
  • Итераторы
    • Функция iter()
    • Функция enumerate()
    • Функция sorted()
    • Функция itertools.chain()
    • Функция itertools.repeat()
    • Функция itertools.count()
    • Функция itertools.cycle()
    • Функции itertools.imap(), itertools.starmap() и itertools.ifilter()
    • Функции itertools.takewhile() и itertools.dropwhile()
    • Функция itertools.izip()
    • Функция itertools.groupby()
    • Функция itertools.tee()
    • Собственный итератор
  • Простые генераторы
    • Генераторное выражение
  • Карринг

Модуль 4. Объектно-ориентированное программирование

  • Основные понятия
  • Абстракция и декомпозиция
  • Объекты
  • Типы и классы
    • Определение класса
  • Инкапсуляция
    • Доступ к свойствам
    • Сокрытие данных
  • Полиморфизм
    • Имитация типов
  • Отношения между классами
    • Наследование
      • Множественное наследование
      • Порядок разрешения методов
    • Агрегация
      • Контейнеры
      • Итераторы
    • Агрегация
      • Слабые ссылки
    • Статический метод
    • Метод класса
    • Метаклассы
    • Мультиметоды
  • Устойчивые объекты
  • Критика ООП

Модуль 5. Численные алгоритмы. Матричные вычисления

  • Nmeric (numpy/oldnumeric) Python
  • Модуль Numeric (numpy/oldnumeric)
    • Создание массива
    • Методы массивов
    • Срезы
    • Универсальные функции
    • Функции модуля Numeric (numpy/oldnumeric)
    • Функции для работы с массивами
      • Функция Numeric.take()
      • Функции Numeric.diagonal() и Numeric.trace()
      • Функция Numeric.choose()
      • Свод функций модуля Numeric
  • Модуль LinearAlgebra
  • Модуль RandomArray

Модуль 6. Обработка текстов. Регулярные выражения. Unicode

  • Строки
    • Кодировка Python-программы
    • Строковые литералы
    • Операции над строками
      • Операция форматирования
      • Индексы и срезы
    • Модуль string
    • Методы строк
    • Рекомендации по эффективности
    • Модуль StringIO
    • Модуль difflib
  • Регулярные выражения
    • Синтаксис регулярного выражения
    • Методы объекта-шаблона
    • Примеры шаблонов
    • Отладка регулярных выражений
  • Примеры применения регулярного выражения
    • Обработка лога
    • Анализ записи числа
    • Множественная замена
    • Работа с несколькими файлами
  • Работа с Unicode

Модуль 7. Работа с данными в различных форматах

  • Формат CSV
  • Пакет email
    • Разбор сообщения. Класс Message
    • Формирование сообщения
    • Разбор поля заголовка
  • Язык XML
    • Формирование XML-документа
    • Анализ XML-документа
    • Пространства имен

Модуль 8. Разработка Web-приложений

  • CGI-сценарии
    • Модуль cgi
    • Что после CGI?
  • Среды разработки
    • Zope и его объектная модель

Модуль 9. Сетевые приложения на Python

  • Работа с сокетами
  • Модуль smtplib
  • Модуль poplib
  • Модули для клиента WWW
    • Функции для загрузки сетевых объектов
    • Функции для анализа URL
    • Возможности urllib2
  • XML-RPC сервер

Модуль 10. Работа с базой данных

  • Основные понятия реляционной СУБД
  • Что такое DB-API 2
  • Описание DB API 2.0
    • Интерфейс модуля
    • Объект-соединение
    • Объект-курсор
    • Объекты-типы
  • Работа с базой данных из Python-приложения
    • Знакомство с СУБД
    • Создание базы данных
    • Наполнение базы данных
    • Выборки из базы данных
  • Другие СУБД и Python

Модуль 11. Многопоточные вычисления

  • О потоках управления
    • Пример многопоточной программы
    • Функции модуля threading
    • Класс Thread
    • Таймер
    • Замки
      • Когда нужны замки?
      • Тупиковая ситуация (deadlock)
    • Семафоры
    • События
    • Условия
    • Очередь
  • Модуль thread
  • Визуализация работы потоков

Модуль 12. Создание приложений с графическим интерфейсом пользователя

  • Обзор графических библиотек
  • О графическом интерфейсе
  • Основы Tk
    • Классы виджетов
    • События
    • Создание и конфигурирование виджета
    • Виджет форматированного текста
    • Менеджеры расположения
    • Изображения в Tkinter
    • Графическое приложение на Tkinter

Модуль 13. Интеграция Python с другими языками программирования

  • C API
  • Написание модуля расширения
  • Пример встраивания интерпретатора в программу на C
  • Использование SWIG
    • Простой пример использования SWIG
  • Интеграция Python и других систем программирования
    • Java
    • Prolog
    • OCaml
    • Pyrex

Модуль 14. Устройство интерпретатора языка Python

  • Лексический анализ
  • Синтаксический анализ
  • Получение байт-кода
  • Изучение байт-кода
  • Отладка
  • Профайлер
    • Модуль profile
    • Модуль timeit
  • Оптимизация
    • Pychecker
  • Исследование объекта
    • Модуль inspect
  • Желателен опыт программирования на любом из языков высокого уровня.