Python (физики), 2016/17

Материал из SEWiki
Перейти к: навигация, поиск

О курсе

Язык Python. Мы изучаем ветвь языка Python 3.* (более современную).

Рекомендуемая книга (но есть и множество других хороших): «A Byte of Python» (ENG, RUS)

Лектор: Михаил Дворкин, mikhail.dvorkin@gmail.com

Результаты практики группы Антона Гардера, a.garder[at]aptu.ru

Результаты группы Андрея Лазаревича thecexcell@gmail.com

План 2 семестра

Лекция 1

  • Хранение вещественных чисел (IEEE floating point)

Лекция 2

  • Библиотека NumPy
  • np.array()
  • применение операторов поэлементно (a + b, a == b)
  • .ndim
  • .shape
  • .dtype
  • np.arange()
  • np.linspace()
  • np.ones()
  • np.zeros()
  • np.eye()
  • np.diag()
  • np.random.rand()
  • np.random.random_integers()
  • np.tile()

Лекция 3

  • broadcasting
  • адресация в массиве: срезы, a[list], a[predicate]

План 1 семестра

Лекция 1

  • Знакомство, введение, описание языка Python
  • Вывод на экран
  • Тип данных int
  • Арифметические операторы

Лекция 2

  • Структура программы: отступы
  • if, else, elif
  • for
  • range от 1, 2 и 3 аргументов
  • while
  • break
  • continue
  • Строки: escaping, +, *, индексация, срезы

Лекция 3

  • Cписки
  • +, *, индексация, срезы
  • присваивание в срезы
  • append, extend, pop, reverse, sort
  • in, not in
  • split, join
  • help, type, dir

Лекция 4

  • Генераторы списков
  • Котрежи
  • Изменяемые и неизменяемые объекты, ссылки
  • Двумерные списки (списки списков)
  • print: именованные параметры sep и end

Лекция 5

  • Словари
  • Устройство словаря: хеш-таблица
  • Хешируемые/неизменяемые объекты
  • Функции
  • Аргументы по умолчанию, *аргументы, **аргументы

Лекция 6

  • Работа с файлами через командную строку: | < >
  • Файлы в питоне, read, readline, readline, write, print
  • Работа с ресурсами: оператор with
  • GUI. Tkinter. Создание приложение, расположение и конфигурирование объектов

Лекция 7

  • GUI. Tkinter. Вызов команд при нажатии на кнопки.
  • Создание кнопок в цикле, разные команды для разных кнопок.
  • Лямбда-функции.
  • Замыкания в лямбда-функциях.

Лекция 8

  • Модули
  • import module, from module import _
  • Вызов основного кода, __name__ == '__main__'
  • Пакеты

Лекция 9

  • ООП
  • Создание класса, конструктор, параметр self
  • Метод класса, вызов как object.method()
  • Поля класса, глобальные поля класса
  • Наследование. Вызов метода (или конструктора) родительского класса.
  • Пример: наследование от встроенных классов.

Лекция 10

  • Перегрузка операторов
  • __str__(), __repr__()
  • __eq__()
  • NotImplemented
  • __add__(), __radd__()
  • Желательность эквивалентности ==, ассоциативности +

Лекция 11

  • bytes, hash, len
  • bool, int, float
  • getitem, setitem
  • call
  • divmod
  • iadd
  • pow
  • Быстрое возведение в степень
  • contains

Лекция 12 Код с доски

  • оператор yeild
  • генераторы
  • __iter__(), __next__(), итераторы
  • методы модуля itertools


Лекция 13 некрасивый черновик с экрана

  • Регулряные выражения. Синтаксис. Группы (скобки).
  • Модуль re: search, match, fullmatch, sub, findall
  • groups(), group()