Об этом курсе: Python – простой, гибкий и невероятно популярный язык, который используется практически во всех областях современной разработки. С его помощью можно создавать веб-приложения, писать игры, заниматься анализом данных, автоматизировать задачи системного администрирования и многое другое. “Программирование на Python” читают разработчики, применяющие Python в проектах, которыми ежедневно пользуются миллионы людей. Курс покрывает все необходимые для ежедневной работы программиста темы, а также рассказывает про многие особенности языка, которые часто опускают при его изучении.
Канал обсуждения в телеге: https://t.me/joinchat/DIzo-A8Tw8u-nXtpSs8y4Q
Курс рассчитан на как на людей, которые уже имели опыт программирования на python, так и новичков в этом деле. Однако, в рамках курса предусмотрены только лекции и домашние задания. Основная среда работы: ipython notebook. В ходе курса не объясняется, как и что устанавливать. Предполагается, что слушатели разбираются с этим сами.
Курс читается на кафедре 1С, МФТИ.
Как слать домашки?: Писать на почту [email protected], в теме письма указать Python1C_HWX. в письме указать свою фамилию. формат сдачи - jupyter notebook или .py файл. Пожалуйста, называйте файлы ФИО_HWX.py или если файлов много - назовите аналогично архив.
Любой Deadline dd.mm.yy = dd.mm.yy 09:00
Оценка по курсу выставляется по следующей формуле: sum(балл(дз_i), i=1...10) + доп_баллы. оценка переводится в строковый маркер как обычно :).
- Лекция 1. Python Введение. Основные структуры языка.
Описание: на первой лекции разбираются основные конструкции языка, последовательности выполнения операций, циклы, переменные, объекты и их свойства (Identity, Type, Value). Garbage Collector. Изменяемые и неизменяемые объекты. Стандартные контейнеры. Функции. Библиотека collections.
Задание: условие в конце лекции 1.Deadline: 27.02.2020 - Лекция 2. Python. Введение. Строки, кодировки, файлы.
Описание: на второй лекции разбиаются кодировки, строки в python (стандартные функции str). Как работает интерпретатор со строками. Частично затрагиваются менеджеры контекста. Разбираются потоки ввода, вывода и ошибок.
Примеры с лекции
Задание: Знакомство со строками. Реализация алогритма передачи данных: часть 1, Deadline: 05.03.2020. - Лекция 3. Python. ООП.
Описание: третья лекция включает разбор основных принципов ООП в питон. Классы и экземпляры. Наследование в питон и алгоритм MRO. Магические методы в питон. Объясняется как осуществляется доступ к атрибутам класса.
Примеры с лекции
Задание: Знакомство с магическими функциями в питон. Реализация классов CounterGetter, Vector: часть 2, Deadline: 05.03.2020. - Лекция 4. Области видимости. Замыкания. Декораторы.
Описание: на лекции разбираются анонимные функции, области видимости переменных и контексты. Объяснение правила LEBG. Приводятся и объясняются сложные примеры замыканий с атрибутами и методами. Разбирается работа декораторов в питон. Стандартная библиотека functions. Классы декораторы и функции декораторы.
Примеры с лекции
Задание: написать следующие декораторы - кэширования результатов функции (@cached), проверки типов аргументов функции (@checked) и декоратор логирования выполнения функции (@Logger). Deadline: 12.03.2020. - Лекция 5. Итераторы и генераторы.
Описание: на этой лекции мы узнаем, как работает цикл for, что такое итератор и протоколы итерирования. Как создавать собственные итераторы. Кратко будет рассмотрено такое свойство итеаторов как исчерпаемость. Объяснение устройства и работы генераторов. Встроенные генераторы map, filter, enumerate, zip. Стандартная библиотека для работы с генераторами itertools.
Примеры с лекции
Задание: разобраться со стандартными итераторами и механизмом работы генераторов. Deadline: 09.04.2020 - Лекция 6. Дескрипторы и мета классы.
Описание: на этой лекции вы почувствуете все мощь питона (всю боль) и узнаете, как работают декораторы property, что такое дескриптор данных. Подробно будет рассмотрен алгоритм получения атрибутов в питон, как использовать собственные дескрипторы данных в своей программе. Во второй части лекци будут рассмотрены следующие вопросы: что такое type в питон, как создаются классы (что происходит, когда мы пишемclass SomeClass(object):
), что такое мета класс, применение мета классов. В том числе будет рассмотрен "хороший метод" (more power!) создания дескриптора с помощью мета класса.
Примеры с лекции
Задание: напишите мета класс PropertyCreator для создания свойств класса. Напишите метакласс InstanceCountExeptioner, который будет следить за количеством экземпляров класса, использующих его. Напишите метакласс JSONClassCreator , который будет по json представлению строить новый класс и обратно. Deadline: 09.04.2020
- Лекция 7. Python и WEB.
Описание: в первой части лекции вы узнаете об "устройстве интернета". Клиент-серверное взаимодейстие. Краткое описание протокола http. "Вводные" слова об HTML или как браузеры показывают веб-странички. Будут рассмотрены запросы методами get и post. Как создать свой клиент на питон, или как сделать запрос данных данных у википедии или гугла. Рассказано как майнить данные и парсить HTML в питон (lxml и BeautifulSoup). Как написать собственный сервер на питон (bottle).
Примеры с лекции
Задание: предлагается создать сервер, который содержит в себе библиотеку книг. Также требуетсяпроверить гипотезу про статьи википедии. Deadline: 09.04.2020 - Лекция 8. Python и data и ml.
- Лекция 9. Faster python.Часть 1., Часть 2.
Описание: в первой части данной лекции расказывается о том, как можно оценивать время работы программы и как ускорить свой код. Подробно разбирается cython. Также рассмотрен пример работы pypy. В последней части лекции объясняется как можно создавать свои модули для python на c/c++ с помощью ctypes или Python.h.
Задание: Исследование ускорения питон кода. Deadline: Конец курса
- Антон Емельянов - МФТИ, кафедра АТП / кафедра 1С - [email protected]