Skip to content

Семинары групп ИАД-11 и ИАД-12, "Введение в программирование на Python" (майнор ИАД 2022)

Notifications You must be signed in to change notification settings

sanityseeker/ida-python-2022

Repository files navigation

Семинары групп 11 и 12 на курсе "Введение в программирование", майнор ИАД 2022.

Ссылки:

Прошедшие семираны:

  • 21.09.2022: Первое знакомство с языком. Установка среды разработки. Переменные. Булевые операции. If. Немного про строки. Дзен Python. (+ в тексте семинара есть гайд для установки WSL)
  • 28.09.2022: Что такое float. Вещественные числа в Python. Слайсы. Методы работы со строками. Способы форматирования строк. (* успели со второй группой) Ссылки на ячейку в памяти, getrefcount(). Дисассемблирование f-string и .format().
  • 05.10.2022: Изменяемые и неизменяемые последовательности: bytes, list, tuple, namedtuple, array. Цикл for. List comprehensions. Генераторы. Range. Чтение и запись в файлы. Распаковка последовательностей. Эффективность array с точки зрения памяти. (* успели со второй группой) Пример циклической ссылки.
  • 12.10.2022: Dict и Set, понятие хеш-таблицы. Простанство имен программы как словарь. Counter и defaultdict из модуля collections. Использование множеств для быстрой проверки на наличие элемента. Задачи: подсчет символов в строке, дедупликация с сохранением порядка, 2-sum для произвольных массивов, общие элементы в списках.
  • 19.10.2022, 02.11.2022: Понятие и синтаксис функций. Positional и keyword аргументы. Области видимости. Анонимные функции. Написание генератора с помощью yield. Замыкания (closures), пример с вычислением среднего значения на потоке. Понятие рекурсии и примеры (факториал, последовательность Фибоначчи, бинпоиск). Декораторы. Замещение исходной функции декоратором. Использование @wraps для сохранения документации декорируемой функции. Декораторы с параметрами. Примеры декораторов (время, lru cache). (на дополнительное чтение) модуль Bisect.
  • 09.11.2022: Основные команды для работы с файлами и папками в терминале. Создание запускаемых файлов. Разрешения файлов в unix-подобных системах. Регулярные выражения, примеры (lookahead/lookbehind, замена времени на фразу, удаление списка стопслов).
  • 16.11.2022: Принципы ООП. Классы в Python. Self. Magic методы. Написание класса Complex с частью арифметических операций. Raise для выбрасывания исключений. isinstance и issublcass. Copy и Deepcopy на примере объектов класса Complex и объектов класса Bus.
  • 23.11.2022: Решение задачек перед контрольной работой
  • 23.11.2022: @staticmethod, @classmethod, @property. Понятие дескриптора. Задание getter, setter, deleter для атрибутов класса.
  • 07.12.2022: Элементы функционального программирования -- itemgetter, attrgetter, methodcaller, filter, map, reduce, accumulate. Наследование. Обработка исключений.
  • 14.12.2022: Python WTF??!!

Бонусы

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

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

  • Семинар 1: "Забегая вперед, однострочники"
  • Семинар 2: "foo:foo", "Форматирование по целочисленной точности", "Удаление стопслов в строке", "Fun". (нужно сделать 3 из 4)
  • Семинар 3: "Палиндром", "Два числа с суммой N", "Три числа с суммой N"
  • Семинар 4: "TF-IDF", "Анаграммы" (каждая на 1 балл)
  • Семинар 6: "Декоратор-кэш" (2 балла)
  • Семинар 7: "E-mails", "Погенерируем пароли" (каждая на 1 балл)
  • Семинар 10: "Поисковый индекс", "Декоратор-assert типов" (каждая на 2 балла)

Рекомендуемые материалы:

About

Семинары групп ИАД-11 и ИАД-12, "Введение в программирование на Python" (майнор ИАД 2022)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published