Программирование для всех (основы работы с Python): различия между версиями
| (не показано 12 промежуточных версий этого же участника) | |||
| Строка 179: | Строка 179: | ||
|} | |} | ||
| − | === | + | === Недели 8-9. Работа с таблицами: датафреймы Pandas === |
| − | * Видео | + | * Видео: занятие 20-11 (все до практикума 9, [https://disk.yandex.ru/d/NwKdpeKq92vrCg ссылка]), занятие 27-11 (практикум 9, [https://disk.yandex.ru/d/BkVUdFiIgD2Mww ссылка]). |
| − | + | * Массивы NumPy, последовательности и датафреймы Pandas ([https://github.com/allatambov/PyAll25/blob/main/06-arrays-pd.ipynb ipynb]) | |
| − | * | ||
* Функция map() и lambda-функции ([https://github.com/allatambov/PyAll25/blob/main/05-map-lambda.ipynb ipynb]) | * Функция map() и lambda-функции ([https://github.com/allatambov/PyAll25/blob/main/05-map-lambda.ipynb ipynb]) | ||
| + | * Практикум 8. Датафреймы pandas – часть 1 ([https://github.com/allatambov/PyAll25/blob/main/practice08.ipynb ipynb]), [https://github.com/allatambov/PyAll25/blob/main/nplus1_2025.csv csv] (или скачать [https://disk.yandex.ru/d/SBs0dvA22JJgwg здесь]) | ||
| + | * Практикум 9. Датафреймы pandas – часть 2 ([https://github.com/allatambov/PyAll25/blob/main/practice09.ipynb ipynb]), решения ([https://github.com/allatambov/PyAll25/blob/main/practice09-solved.ipynb ipynb]), csv тот же | ||
| + | |||
| + | === Неделя 10. Библиотеки pandas и geopandas === | ||
| + | |||
| + | * Практикум 10.1. Датафреймы pandas – часть 3 ([https://github.com/allatambov/PyAll25/blob/main/practice-10-01.ipynb ipynb], [https://github.com/allatambov/PyAll25/blob/main/flats-final.xlsx flats-final.xlsx]) | ||
| + | * Практикум 10.2. Построение карт с geopandas ([https://github.com/allatambov/PyAll25/blob/main/04-12.py код], [https://github.com/allatambov/PyAll25/blob/main/%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B0_Moscow.geojson geojson]) | ||
== Learning outcomes == | == Learning outcomes == | ||
| Строка 203: | Строка 209: | ||
'''Лабораторная работа 3:''' цикл while и конструкция while True, цикл for с оператором break. | '''Лабораторная работа 3:''' цикл while и конструкция while True, цикл for с оператором break. | ||
| + | |||
| + | '''Недели 6-7:''' отправка и обработка запросов с помощью requests.get(), парсинг html с помощью BeautifulSoup: поиск<br>тэгов и атрибутов и извлечение текста из них, | ||
| + | обработка JSON-строк – преобразование JSON строки в список/словарь/таблицу. | ||
| + | |||
| + | '''Лабораторная работа 4:''' простые операции на массивах NumPy, булевы массивы, сочетание булевых массивов<br>с методами sum() и mean(), фильтрация элементов массива. | ||
| + | |||
| + | '''Недели 8-9:''' загрузка данных из CSV-файла с помощью pandas, основные операции на датафреймах.<br> | ||
| + | Описание датафрейма: методы .info() и .describe(), атрибут .shape.<br> | ||
| + | Фильтрация: операторы &, | и ~, методы .isin() и str.contains().<br> | ||
| + | Добавление новых столбцов: методы .astype() и apply(). | ||
== Домашние задания == | == Домашние задания == | ||
| Строка 212: | Строка 228: | ||
| [https://github.com/allatambov/PyAll25/blob/main/hw01.ipynb Домашнее задание №1] || 11.11 23:59 || [https://www.dropbox.com/request/MLQaoi2Vik4OJXEyLVPd ссылка] на Dropbox | | [https://github.com/allatambov/PyAll25/blob/main/hw01.ipynb Домашнее задание №1] || 11.11 23:59 || [https://www.dropbox.com/request/MLQaoi2Vik4OJXEyLVPd ссылка] на Dropbox | ||
|- | |- | ||
| + | | [https://github.com/allatambov/PyAll25/blob/main/hw02.ipynb Домашнее задание №2] || 17.12 23:59 || [https://www.dropbox.com/request/HnFewVzcuf7sCw8qvz3o ссылка] на Dropbox | ||
|} | |} | ||
Текущая версия на 08:59, 7 декабря 2025
Дорогие студенты!
Это страница курса «Программирование для всех (основы Python)», читаемого в 1-2 модулях 2025-2026 учебного года. Курс является обязательным для студентов магистерской программы «Прикладная политология» и курсом по выбору в рамках МагоЛего для студентов других образовательных программ.
Преподаватель: Тамбовцева Алла Андреевна.
Программу курса можно найти здесь.
Вспомогательный онлайн-курс «Python как иностранный» доступен всем слушателям в SmartLms.
Содержание
- 1 Оценивание
- 2 Программное обеспечение
- 3 Материалы и лабораторные работы
- 3.1 Неделя 0. Подготовка к работе. Настройка рабочего места
- 3.2 Неделя 1. Введение в Python. Типы данных. Ввод и вывод
- 3.3 Лабораторная работа №1. Логические выражения и условные конструкции
- 3.4 Неделя 2. Индексированные структуры данных. Цикл for
- 3.5 Неделя 3. Методы на строках и основы работы с текстом
- 3.6 Лабораторная работа №2. Методы на списках и строках
- 3.7 Неделя 4. Кортежи. Словарь как пример неиндексированной структуры
- 3.8 Неделя 5. Функции
- 3.9 Лабораторная работа №3. Цикл while
- 3.10 Неделя 6. Парсинг HTML-файлов
- 3.11 Неделя 7. Парсинг HTML-файлов. Формат JSON и веб-страницы
- 3.12 Лабораторная работа №4. Массивы NumPy
- 3.13 Недели 8-9. Работа с таблицами: датафреймы Pandas
- 3.14 Неделя 10. Библиотеки pandas и geopandas
- 4 Learning outcomes
- 5 Домашние задания
Оценивание
- Формула оценки: ИТОГ = 0.16 * Лабораторные работы + 0.2 * Тест + 0.1 * ДЗ1 + 0.14 * ДЗ2 + 0.4 * Экзамен.
- Лабораторные работы: небольшие наборы задач по программированию, решение которых предполагает знакомство с главами онлайн-курса и/или дополнительными материалами, предоставляемыми преподавателем.
- Тест: состоит из вопросов с выбором ответа или кратким ответом и предполагает выбор верных или неверных утверждений о базовых конструкциях и структурах данных Python, запись результата, получаемого после запуска представленного фрагмента кода, указание ошибок в коде или выбор безошибочных вариантов решений предложенной задачи. Запускать код на компьютере и пользоваться материалами во время теста запрещено. Ожидаемое время выполнения теста – 30 минут.
- ДЗ1 и ДЗ2: наборы задач по программированию по темам 1 и 2 модуля соответственно.
- Экзамен: практическая работа в виде набора задач (по типу семинарских задач, домашних заданий и лабораторных).
Тест и экзамен – очные работы (для слушателей МагоЛего предусмотрена возможность сдавать онлайн), остальное – домашние с фиксированными дедлайнами. Задания, сданные позже дедлайна, оцениваются со штрафом: в пределах часа – 10% от оценки, суток – 30%, недели – 50%.
Программное обеспечение
Перед занятиями необходимо установить дистрибутив Anaconda (скачать можно здесь, регистрацию можно пропустить), который включает в себя интерпретатор языка Python, библиотеки для обработки, анализа и визуализации данных, а также среду для работы Jupyter Notebook. Также есть возможность работать в аналоге Jupyter Notebook онлайн, используя ресурс Google Colab (для создания и редактирования файлов нужен аккаунт Gmail).
Подробности по установке и работе – см. ниже в неделе 0.
Материалы и лабораторные работы
Неделя 0. Подготовка к работе. Настройка рабочего места
Для подготовки к работе на курсе можно ознакомиться с материалами онлайн-курса:
А также с материалами по работе в Jupyter Notebook и Google Colab:
- Запуск Jupyter без Anaconda Navigator (инструкция).
- Работа в Jupyter Notebook (видео), отличия Google Colab от Jupyter (видео).
Дополнительные материалы для желающих:
- Набор текста в Jupyter Notebook (видео, ipynb), больше о Markdown.
- LaTeX: Overleaf, документация, материалы по LaTeX.
Неделя 1. Введение в Python. Типы данных. Ввод и вывод
- Видео, «сырой» файл ipynb с занятия, все материалы в одной папке: ссылка.
- Введение в Python: вычисления, переменные, типы данных (слайды), визуализатор кода от Pythontutor.
- Вычисления и импорт библиотек в Python (ipynb). Переменные и типы данных (ipynb).
- Ввод и вывод, форматирование строк (ipynb).
- Практикум 1: типы данных, ввод и вывод, форматирование строк (ipynb), решения (ipynb).
Дополнительно для желающих:
- Стандарты оформления кода PEP8.
- Документация модулей decimal и fractions для работы с десятичными и обычными дробями соответственно.
- Документация библиотеки sympy для символьных вычислений (уравнения, производные, интегралы и проч).
- Интерактивные виджеты в Jupyter (альтернатива стандартному вводу и не только).
Лабораторная работа №1. Логические выражения и условные конструкции
Для выполнения лабораторной работы необходимо изучить формулировку логических выражений
и конструкцию if-else. Для этого (один из вариантов на выбор) можно:
- Прослушать материал темы 2 Условия и логические выражения онлайн-курса «Python как иностранный».
- Прочитать конспект лекции Логические выражения и условные конструкции.
- Изучить материалы онлайн-учебника Pythontutor.
| Лабораторная работа | Дедлайн | Куда сдавать |
|---|---|---|
| Лабораторная работа 1 | 30.09 23:59 | ссылка |
Неделя 2. Индексированные структуры данных. Цикл for
- Видео, «сырой» ipynb-файл с занятия: ссылка
- Структуры данных в Python, изменяемость и неизменяемость (слайды)
- Индексированные структуры данных: строки и списки, методы .split() и .join() (ipynb)
- Цикл for и функция range() (ipynb)
- Практикум 2: Списки и цикл for, методы .split() и .join() (ipynb), решения (ipynb)
Неделя 3. Методы на строках и основы работы с текстом
- Видео, «сырой» файл ipynb с занятия, все материалы в одной папке: ссылка
- Альтернатива циклу for: списковые включения ([ipynb])
- Практикум 3.1: методы на строках и работа с текстом (ipynb), решения (ipynb)
- Практикум 3.2: предварительная обработка текста и построение облака слов (ipynb), решения (ipynb)
- Файлы для практикума 3.2: txt, картинка guitar
Дополнительно для желающих:
Лабораторная работа №2. Методы на списках и строках
Для выполнения этой работы необходимо уметь применять методы на списках и строках.
Для этого (один из вариантов на выбор) можно:
- Прослушать материал темы 5 Методы онлайн-курса «Python как иностранный».
- Прочитать конспект лекции Методы на строках, конспект лекции Методы на списках.
| Лабораторная работа | Дедлайн | Куда сдавать |
|---|---|---|
| Лабораторная работа 2 | 14.10 23:59 | ссылка на Dropbox |
Неделя 4. Кортежи. Словарь как пример неиндексированной структуры
- Видео, «сырой» файл ipynb с занятия, все материалы в одной папке: ссылка
- Кортежи, функция zip() и сортировка (ipynb)
- Словари и методы на словарях (ipynb)
- Практикум 4. Кортежи и функция zip() (ipynb), решения (ipynb)
Неделя 5. Функции
- Видео с занятия, все материалы в одной папке: ссылка
- Практикум 4: продолжение. Словари и методы на словарях (ipynb), решения (ipynb)
- Функции: ipynb с кратким конспектом, расширенная версия лекции (автор – И.В.Щуров)
- Практикум 5. Функции (ipynb), решения (ipynb)
Лабораторная работа №3. Цикл while
Для выполнения этой работы необходимо понимать устройство цикла while
и его альтернативу в виде цикла for с оператором break.
Для этого можно:
- Прослушать материалы раздела 3 Цикл с условием и Ввод с клавиатуры. Цикл while True
онлайн-курса «Python как иностранный». - Прочитать конспект лекции про циклы.
| Лабораторная работа | Дедлайн | Куда сдавать |
|---|---|---|
| Лабораторная работа 3 | 04.11 23:59 | ссылка на Dropbox |
Неделя 6. Парсинг HTML-файлов
- Видео с занятия, все материалы в одной папке: ссылка
- Язык HTML: обзор (слайды)
- Онлайн-редактор HTML кода, пример кода HTML, названия цветов.
- Практикум 6.1. Введение в парсинг HTML (ipynb), решения (ipynb)
- Практикум 6.2. Парсинг HTML с библиотекой BeautifulSoup (ipynb)
Дополнительно:
- Тьюториал по HTML от w3schools, учебник от html5book.ru.
- Статья об ошибках запросов.
Неделя 7. Парсинг HTML-файлов. Формат JSON и веб-страницы
- Видео с занятия.
- Практикум 6.2. Парсинг HTML с библиотекой BeautifulSoup (ipynb), функция get_news, решения (ipynb)
- Практикум 7. Формат JSON и веб-страницы (ipynb)
- Если в практикуме 7 что-то пойдет не так: ссылка 1 для url, ссылка 2 для link.
Лабораторная работа №4. Массивы NumPy
Для выполнения лабораторной работы необходимо познакомиться с массивами NumPy,
булевыми массивами и изучить принципы фильтрации элементов массива.
Для этого можно прочитать конспект или посмотреть видео по этому конспекту.
| Лабораторная работа | Дедлайн | Куда сдавать |
|---|---|---|
| Лабораторная работа 4 | 20.11 18:00 | ссылка |
Недели 8-9. Работа с таблицами: датафреймы Pandas
- Видео: занятие 20-11 (все до практикума 9, ссылка), занятие 27-11 (практикум 9, ссылка).
- Массивы NumPy, последовательности и датафреймы Pandas (ipynb)
- Функция map() и lambda-функции (ipynb)
- Практикум 8. Датафреймы pandas – часть 1 (ipynb), csv (или скачать здесь)
- Практикум 9. Датафреймы pandas – часть 2 (ipynb), решения (ipynb), csv тот же
Неделя 10. Библиотеки pandas и geopandas
- Практикум 10.1. Датафреймы pandas – часть 3 (ipynb, flats-final.xlsx)
- Практикум 10.2. Построение карт с geopandas (код, geojson)
Learning outcomes
Программа-минимум – что необходимо знать по итогам каждой недели курса, без учета дополнительных тем «на будущее».
Неделя 1: базовые вычисления, создание переменных, базовые типы данных (int, float, bool, str) и операции с ними,
приведение типов, ввод через input() и вывод через print(), использование f-строк.
Лабораторная работа 1: логические выражения, операторы <, <=, >, >=, ==, !=, in, not in,
объединение условий через and и or, конструкция if-else.
Недели 2-3: индексируемые и неиндексируемые структуры в Python, изменяемые и неизменяемые структуры в Python,
создание списков и строк, выбор элементов списка/строки по индексам и срезам, основные методы на списках и строках
(какие основные – см ниже), функция range(), цикл for.
Лабораторная работа 2: основные методы на списках: .append(), .extend(), .index(), .count(), .copy() и .sort(),
основные методы на строках: .split(), .join(), .upper(), .lower(), .capitalize(), .replace(), .count(), .startswith(), .endswith().
Неделя 4: кортежи и функция zip(), сортировка с функцией sorted(), словари и основные методы на словарях.
Неделя 5: написание собственных функций через def (функции с одним и несколькими аргументами,
задание аргумента по умолчанию).
Лабораторная работа 3: цикл while и конструкция while True, цикл for с оператором break.
Недели 6-7: отправка и обработка запросов с помощью requests.get(), парсинг html с помощью BeautifulSoup: поиск
тэгов и атрибутов и извлечение текста из них,
обработка JSON-строк – преобразование JSON строки в список/словарь/таблицу.
Лабораторная работа 4: простые операции на массивах NumPy, булевы массивы, сочетание булевых массивов
с методами sum() и mean(), фильтрация элементов массива.
Недели 8-9: загрузка данных из CSV-файла с помощью pandas, основные операции на датафреймах.
Описание датафрейма: методы .info() и .describe(), атрибут .shape.
Фильтрация: операторы &, | и ~, методы .isin() и str.contains().
Добавление новых столбцов: методы .astype() и apply().
Домашние задания
| Задание | Дедлайн | Куда сдавать |
|---|---|---|
| Домашнее задание №1 | 11.11 23:59 | ссылка на Dropbox |
| Домашнее задание №2 | 17.12 23:59 | ссылка на Dropbox |