Skip to content

Лекции и задания по курсу python

Notifications You must be signed in to change notification settings

king-menin/python-course

Repository files navigation

Python Course(3.6)

Об этом курсе: 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. Синтаксис.

  • Лекция 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

Часть 2. Приложения.

  • Лекция 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: Конец курса

Authors

  • Антон Емельянов - МФТИ, кафедра АТП / кафедра 1С - [email protected]

Литература и полезные ссылки

книги:

ссылка на ссылки :)

About

Лекции и задания по курсу python

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published