«Введение в Python и обработку данных»
Спецкурс кафедры Теоретической информатики мехмата МГУ.
На курсе планируется освоение студентами основ языка Python (синтаксис, структуры данных, работа с файловой системой и т.д.) и овладение навыками для решения стандартных задач.
Время: по субботам, 16:45 — 18:20
Место: 2 учебный корпус МГУ, ауд. П-13: зайти через вход, который ближе к ГЗ, подняться по лестнице — аудитория будет по правую руку
Первая лекция: 2 марта 2019
Руководитель курса: Адрианов Николай, к.ф.-м.н.
Читает курс: Бекбулатов Рамзан
Чат курса: t.me/mm_python (зеркало: tele.click/mm_python) — помощь и актуальные новости
Регистрация на курс: goo.gl/forms/2ELiuN0iNp2nszLS2
Сдача спецкурса для других факультетов: нужно будет брать специальную ведомость в своей учебной части. Курс может идти в диплом как «спецкурс по выбору студента» или как «курс сверх плана».
Темы. Организационные моменты, история Python, первый взгляд на Python: слайды
Темы. Повторение основ, работа со строками, ввод с клавиатуры, чтение и запись файлов: слайды
К этой лекции необходимо установить Jupyter Notebook (подробнее). Первые две лекции, собранные вместе: PythonCourse_First.ipynb, статичное превью
Темы. Работа с Jupyter Notebook, модель данных в Python, контейнеры данных: PythonCourse_Lecture_3.ipynb, статичное превью
Темы. Визуализация данных в Python, работа с библиотекой matplotlib: PythonCourse_Lecture_5.ipynb, статичное превью, задачи с лекции
Темы. словари, множества, модуль collections, особенности работы с функциями: PythonCourse_Lecture_6.ipynb, статичное превью
Темы. map, filter и прочие, модуль functools, декораторы, генераторы: PythonCourse_Lecture_7.ipynb, статичное превью
Темы. классы, наследование, обработка ошибок: PythonCourse_Lecture_8.ipynb, статичное превью
Каждое задание оценивается в звёздочках. К концу курса будет определено количество звёздочек для зачёта и автомата. Задачи пока не имеют дедлайнов, но лучше сдавать раньше и идти в ногу с курсом.
Форма сдачи задания: код решения нужно заливать в свой репозиторий PythonCourse (см. ДЗ №1) с названием hw_номер.py, к примеру, hw_B1.py.
Hello World! 10 раз и залить его в свой репозиторий PythonCourse с названием hw_A2.pyB4: Сделать угадайку чисел. Программа «загадывает» случайное число от 1 до 100, пользователь по очереди вводит числа, пока не угадает. Программа отвечает ему «больше» или «меньше» текущее число относительно загаданного. Интересные вариации приветствуются.
Для «загадывания» пригодится модуль random (документация):
import random
# Выведет случайное число от 1 до 100 включительно
print(random.randint(1, 100))
a, b, c из уравнения ax^2 + bx + c = 0, вывести корни уравнения или сообщить, что их нетf, заданной в коде. Методы численного интегрирования есть тут. Подойдёт и самый простой метод прямоугольников: пользователь вводит a, b — интервал интегрирования, и N — число точек разбиения; нужно посчитать значения функции в N точках от a до b и умножить на (b - a) / N, это и будет ответ. Для проверки ответа нужно сравнивать его с аналитически вычисленным интегралом, т.е. для f(x) = sin(x) функцией для проверки результата будет I(x) = -cos(x). Для развития можно реализовать и другие методы, к примеру, метод Симпсона.np.random.poisson)np.random.pareto).txt файл с названием функции в имениВыполнить команду в Терминале:
sudo apt-get install python3 python3-pip idle3
Про установку: jupyter.readthedocs.io/en/latest/install.html
Другими словами есть два варианта (оба подходят на Windows, Linux и macOS):
pip3 install -U jupyter (на Windows ищите cmd.exe в поиске в меню Пуск и перейти в папку с Python)Про запуск: jupyter.readthedocs.io/en/latest/running.html
На Windows и macOS ноутбуки возможно будут открываться просто двойным нажатием, а на Linux нужно будет открывать через консоль jupyter notebook PythonCourse_First.ipynb. Также может записываться jupyter-notebook через дефис.