Python (физики), 2016/17 — различия между версиями

Материал из SEWiki
Перейти к: навигация, поиск
(План 2 семестра)
 
(не показано 10 промежуточных версий 2 участников)
Строка 9: Строка 9:
 
[https://docs.google.com/spreadsheets/d/1zEGaaEGQYcz9pMnHsHViHFPuaRsnrZR-7sGswTnLxu0/edit?usp=sharing Результаты практики] группы Антона Гардера, '''a.garder[at]aptu.ru'''
 
[https://docs.google.com/spreadsheets/d/1zEGaaEGQYcz9pMnHsHViHFPuaRsnrZR-7sGswTnLxu0/edit?usp=sharing Результаты практики] группы Антона Гардера, '''a.garder[at]aptu.ru'''
  
== План ==
+
[https://goo.gl/5F8V6L Результаты] группы Андрея Лазаревича '''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]
 +
 
 +
...
 +
 
 +
Лекция N
 +
 
 +
[https://gist.github.com/mikhail-dvorkin/4984e29d8cb275451aee16c0e9e4ace6 Черновик с лекции]
 +
 
 +
== План 1 семестра ==
  
 
Лекция 1
 
Лекция 1
Строка 56: Строка 90:
 
* Работа с ресурсами: оператор with
 
* Работа с ресурсами: оператор with
 
* GUI. Tkinter. Создание приложение, расположение и конфигурирование объектов
 
* 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 [http://pastebin.com/S2Kp4wr5 Код с доски]
 +
* оператор yeild
 +
* генераторы
 +
* __iter__(), __next__(), итераторы
 +
* методы модуля itertools
 +
 +
 +
Лекция 13 [http://pastebin.com/636H04MN некрасивый черновик с экрана]
 +
* Регулряные выражения. Синтаксис. Группы (скобки).
 +
* Модуль re: search, match, fullmatch, sub, findall
 +
* groups(), group()

Текущая версия на 16:07, 10 апреля 2017

О курсе

Язык 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]

...

Лекция N

Черновик с лекции

План 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()