Программирование на Python: различия между версиями
(не показано 57 промежуточных версий этого же участника) | |||
Строка 41: | Строка 41: | ||
=== Введение в Python. Переменные и типы данных. Ввод и вывод. (4 и 7 апреля) === | === Введение в Python. Переменные и типы данных. Ввод и вывод. (4 и 7 апреля) === | ||
− | |||
* Знакомство со средой Jupyter Notebook. [https://allatambov.github.io/icef/seminars/instruction-JN.pdf Инструкция] по работе с Jupyter Notebook. Знакомство с Jupyter Notebook и Markdown ([https://nbviewer.jupyter.org/github/allatambov/allatambov.github.io/blob/master/icef/seminars/intro-jupyter.ipynb читать], [http://allatambov.github.io/icef/seminars/intro-jupyter.ipynb ipynb]). | * Знакомство со средой Jupyter Notebook. [https://allatambov.github.io/icef/seminars/instruction-JN.pdf Инструкция] по работе с Jupyter Notebook. Знакомство с Jupyter Notebook и Markdown ([https://nbviewer.jupyter.org/github/allatambov/allatambov.github.io/blob/master/icef/seminars/intro-jupyter.ipynb читать], [http://allatambov.github.io/icef/seminars/intro-jupyter.ipynb ipynb]). | ||
− | * Вычисления и переменные в Python ([https://github.com/allatambov/allatambov.github.io/blob/master/PyProgPerm/lectures/calc-variables.ipynb читать], [https://allatambov.github.io/PyProgPerm/lectures/calc-variables.ipynb ipynb]). Типы данных, ввод и вывод, форматирование строк ([https:// | + | * Вычисления и переменные в Python ([https://github.com/allatambov/allatambov.github.io/blob/master/PyProgPerm/lectures/calc-variables.ipynb читать], [https://allatambov.github.io/PyProgPerm/lectures/calc-variables.ipynb ipynb]). Типы данных, ввод и вывод, форматирование строк ([https://github.com/allatambov/allatambov.github.io/blob/master/PyProgPerm/lectures/types-input-output.ipynb читать], [https://allatambov.github.io/PyProgPerm/lectures/types-input-output.ipynb ipynb]). |
* Стандарты оформления кода Python: [https://peps.python.org/pep-0008/ PEP8]. | * Стандарты оформления кода Python: [https://peps.python.org/pep-0008/ PEP8]. | ||
Строка 54: | Строка 53: | ||
=== Списки и цикл for. Методы на строках. Работа с файлами. (11 и 14 апреля) === | === Списки и цикл for. Методы на строках. Работа с файлами. (11 и 14 апреля) === | ||
− | + | * Практикум 1. Списки, цикл for, методы на строках ([https://github.com/allatambov/allatambov.github.io/blob/master/PyProgPerm/practice/practice01.ipynb задания], [https://github.com/allatambov/allatambov.github.io/blob/master/PyProgPerm/practice/practice01-solutions.ipynb решения], [https://github.com/allatambov/allatambov.github.io/tree/master/PyProgPerm/practice/practice01 py-файлы]). | |
− | * Практикум 1. Списки, цикл for, методы на строках ([https://nbviewer.org/github/allatambov/allatambov.github.io/blob/master/PyProgPerm/practice/ | + | * Методы на списках ([https://www.w3schools.com/python/python_lists_methods.asp обзор]). Функция range() и цикл for ([https://nbviewer.org/github/allatambov/allatambov.github.io/blob/master/PyProgPerm/lectures/range-for.ipynb конспект], [https://allatambov.github.io/PyProgPerm/lectures/range-for.ipynb ipynb]). Методы на строках ([https://github.com/allatambov/allatambov.github.io/blob/master/PyProgPerm/lectures/str-methods.ipynb конспект], [https://allatambov.github.io/PyProgPerm/lectures/str-methods.ipynb ipynb]). |
+ | * Чтение и запись текстовых файлов (конспект, ipynb). | ||
+ | |||
+ | Дополнительно: | ||
+ | |||
+ | * [https://nbviewer.jupyter.org/github/allatambov/allatambov.github.io/blob/master/icef/seminars/lists-1.ipynb Конспект] по спискам и циклу for. | ||
+ | * [https://nbviewer.org/github/allatambov/allatambov.github.io/blob/master/icef/seminars/lists-2.ipynb Конспект] по методам на списках. | ||
+ | * Pythontutor: [https://pythontutor.ru/lessons/for_loop/ цикл for], [https://pythontutor.ru/lessons/lists/ списки], [https://pythontutor.ru/lessons/str/ строки]. | ||
+ | |||
+ | === Списки vs массивы. Условные конструкции. (18 и 21 апреля) === | ||
+ | |||
+ | * Проверка условий: [https://github.com/allatambov/allatambov.github.io/blob/master/PyProgPerm/lectures/conditions.ipynb конспект]. Условные конструкции в Python: [https://github.com/allatambov/allatambov.github.io/blob/master/icef/seminars/if-else.ipynb конспект]. | ||
+ | * Практикум 2: списки vs массивы, условия и циклы ([https://github.com/allatambov/allatambov.github.io/blob/master/PyProgPerm/practice/practice02.ipynb задания], [https://github.com/allatambov/allatambov.github.io/blob/master/PyProgPerm/practice/practice02-solutions.ipynb решения], [https://github.com/allatambov/allatambov.github.io/tree/master/PyProgPerm/practice/practice02 py-файлы]). | ||
+ | |||
+ | Дополнительно: | ||
+ | |||
+ | * Pythontutor: [https://pythontutor.ru/lessons/ifelse/ условия]. | ||
+ | * Сравнение continue и pass ([https://www.geeksforgeeks.org/difference-between-continue-and-pass-statements-in-python/ статья]). | ||
+ | |||
+ | === Цикл while. Функции в Python. (25 и 28 апреля) === | ||
+ | |||
+ | * Цикл while: [https://github.com/allatambov/allatambov.github.io/blob/master/PyProgPerm/lectures/while.ipynb конспект]. | ||
+ | * Полная [https://nbviewer.jupyter.org/github/ischurov/pythonhse/blob/master/Lecture%204.ipynb лекция] по функциям (И.В.Щуров). | ||
+ | * Практикум 3: функция в Python ([https://github.com/allatambov/allatambov.github.io/blob/master/PyProgPerm/practice/practice03.ipynb задания], [https://github.com/allatambov/allatambov.github.io/blob/master/PyProgPerm/practice/practice03-solutions.ipynb решения], [https://github.com/allatambov/allatambov.github.io/tree/master/PyProgPerm/practice/practice03 py-файлы]). | ||
+ | |||
+ | Дополнительно: | ||
+ | |||
+ | * Pythontutor: [https://pythontutor.ru/lessons/while/ цикл while]. | ||
+ | * Pythontutor: [https://pythontutor.ru/lessons/functions/ функции и рекурсия]. | ||
+ | |||
+ | === Кортежи и словари. Формат JSON. (12 и 14 мая) === | ||
+ | |||
+ | * Кортежи ([https://github.com/allatambov/allatambov.github.io/blob/master/icef/seminars/tuples.ipynb конспект]). Словари ([https://github.com/allatambov/allatambov.github.io/blob/master/PyProgPerm/lectures/dicts.ipynb конспект]). Работа с файлами JSON ([https://github.com/allatambov/allatambov.github.io/blob/master/PyProgPerm/lectures/files-json.ipynb конспект]). | ||
+ | * Практикум 4: кортежи и словари в Python ([https://github.com/allatambov/allatambov.github.io/blob/master/PyProgPerm/practice/practice04.ipynb задания], [https://github.com/allatambov/allatambov.github.io/blob/master/PyProgPerm/practice/practice04-solutions.ipynb решения], py-файлы). | ||
+ | |||
+ | Дополнительно: | ||
+ | |||
+ | * Pythontutor: [https://pythontutor.ru/lessons/dicts/ словари], [https://pythontutor.ru/lessons/sets/ множества]. | ||
+ | * [https://nbviewer.org/github/PyBasics-19/py-basics-19/blob/master/lectures/sets.ipynb Конспект] по основным методам на множествах. | ||
+ | |||
+ | === Объектно-ориентированное и функциональное программирование в Python. (16 и 19 мая) === | ||
+ | |||
+ | * Классы в Python ([https://nbviewer.jupyter.org/github/allatambov/allatambov.github.io/blob/master/pydj/seminars/classes.ipynb конспект]). | ||
+ | * Lambda-функции, filter() и map() ([https://nbviewer.jupyter.org/github/allatambov/PyDat-0919/blob/master/lectures-seminars/5-files/lambda-functions.ipynb конспект]). | ||
+ | |||
+ | === Парсинг HTML с BeautifulSoup: часть 1 (26 и 28 мая) === | ||
+ | |||
+ | * Введение в HTML: знакомство с тэгами ([https://www.dropbox.com/s/igzv6fb0l5fd5dz/Intro_HTML.pdf?dl=0 слайды]). | ||
+ | * Практикум 5: парсинг новостей ([https://allatambov.github.io/PyProgPerm/practice/parse-01.ipynb ipynb], [https://github.com/allatambov/allatambov.github.io/blob/master/PyProgPerm/practice/parse-01-solutions.ipynb решения]). | ||
+ | |||
+ | Дополнительно: | ||
+ | |||
+ | * [https://www.w3schools.com/html/ Тьюториал] w3schools. | ||
+ | * [https://html5book.ru/html-tags/ Учебник] от html5book.ru. | ||
+ | |||
+ | === Парсинг HTML с BeautifulSoup: часть 2 (30 мая и 2 июня) === | ||
+ | |||
+ | * Практикум 6: продолжение парсинга новостей ([https://github.com/allatambov/allatambov.github.io/blob/master/PyProgPerm/practice/parse-02.ipynb читать], [https://allatambov.github.io/PyProgPerm/practice/parse-02.ipynb ipynb]). | ||
+ | * Исключения: конструкция try-except ([https://nbviewer.org/github/allatambov/allatambov.github.io/blob/master/web-scrape/try-except.ipynb конспект]). | ||
+ | |||
+ | Дополнительно: | ||
+ | |||
+ | * [https://www.crummy.com/software/BeautifulSoup/bs4/doc/ Документация] BeautifulSoup. | ||
+ | * Управление браузером с Selenium: [https://nbviewer.org/github/allatambov/allatambov.github.io/blob/master/web-scrape/selenium-bg.ipynb пример] с поиском по сайту, [https://nbviewer.org/github/allatambov/allatambov.github.io/blob/master/web-scrape/selenium-vk.ipynb пример] с поиском ВКонтакте. | ||
+ | |||
+ | === Введение в API. Работа с API ВКонтакте. (6 июня и 9 июня) === | ||
+ | |||
+ | * Получение доступа к API ВКонтакте: [https://allatambov.github.io/pypolit/vk-auth.pdf инструкция]. | ||
+ | * [https://dev.vk.com/reference Документация] API ВКонтакте. | ||
+ | * Работа с API ВКонтакте: собираем посты со стены: [https://github.com/allatambov/allatambov.github.io/blob/master/PyProgPerm/practice/practice-vk.ipynb решения] практикума. | ||
+ | * [https://www.dropbox.com/sh/9wghpd707hyl8jw/AACNesCmh1FvfK0Vkb4bneJ6a?dl=0 Видеозаписи] занятий. | ||
+ | |||
+ | Дополнительно: | ||
+ | |||
+ | * Работа с API ВКонтакте: собираем информацию о друзьях: [https://nbviewer.org/github/allatambov/allatambov.github.io/blob/master/web-scrape/vk-api-friends-upd.ipynb конспект]. | ||
+ | |||
+ | === Датафреймы pandas. (16 июня и 18 июня) === | ||
+ | |||
+ | * Данные для работы: [https://allatambov.github.io/pydj/seminars/firtree.csv firtree.csv], [https://allatambov.github.io/PyProgPerm/practice/polit.csv polit.csv]. | ||
+ | * Массивы NumPy, последовательности и датафреймы Pandas ([https://nbviewer.jupyter.org/github/allatambov/allatambov.github.io/blob/master/icef/seminars/arrays-pandas.ipynb читать], [https://allatambov.github.io/icef/seminars/arrays-pandas.ipynb скачать]). | ||
+ | * Работа с датафреймами pandas: часть 1 ([https://nbviewer.jupyter.org/github/allatambov/allatambov.github.io/blob/master/icef/seminars/pandas-01.ipynb читать], [https://allatambov.github.io/icef/seminars/pandas-01.ipynb скачать]), часть 2 ([https://nbviewer.jupyter.org/github/allatambov/allatambov.github.io/blob/master/icef/seminars/pandas-02.ipynb читать], [https://allatambov.github.io/icef/seminars/pandas-02.ipynb скачать]), часть 3 ([https://nbviewer.jupyter.org/github/allatambov/allatambov.github.io/blob/master/icef/seminars/pandas-03.ipynb читать], [https://allatambov.github.io/icef/seminars/pandas-03.ipynb скачать]). | ||
+ | * [https://github.com/allatambov/allatambov.github.io/blob/master/PyProgPerm/practice/practice-pandas.ipynb Практикум 8] с решениями. | ||
== Домашние задания == | == Домашние задания == | ||
Строка 67: | Строка 147: | ||
| Домашнее задание 1 || Глава [https://campus.datacamp.com/courses/intro-to-python-for-data-science/chapter-2-python-lists?ex=1 Python Lists] || 11.04 11:00 || 14.04 11:00 | | Домашнее задание 1 || Глава [https://campus.datacamp.com/courses/intro-to-python-for-data-science/chapter-2-python-lists?ex=1 Python Lists] || 11.04 11:00 || 14.04 11:00 | ||
|- | |- | ||
− | | Домашнее задание 2 || | + | | Домашнее задание 2 || Глава [https://campus.datacamp.com/courses/intro-to-python-for-data-science/chapter-4-numpy?ex=1 NumPy] || 18.04 11:00 || 21.04 11:00 |
+ | |- | ||
+ | | Домашнее задание 3 || Глава [https://campus.datacamp.com/courses/data-types-for-data-science-in-python/fundamental-data-types?ex=1 Fundamental data types] || 29.04 11:00 || 29.04 11:00 | ||
+ | |- | ||
+ | | Домашнее задание 4 || [https://github.com/allatambov/allatambov.github.io/blob/master/PyProgPerm/Homework01.ipynb задачи] сдавать на [https://www.dropbox.com/request/32HYWX4GKMOst2zWjuik Dropbox] || 05.05 23:59 || 05.05 23:59 | ||
+ | |- | ||
+ | | Домашнее задание 5 || Глава [https://campus.datacamp.com/courses/data-types-for-data-science-in-python/dictionaries-the-root-of-python?ex=1 Dictionaries – the root of Python] || 19.05 23:59 || 19.05 23:59 | ||
+ | |- | ||
+ | | Домашнее задание 6 || [https://github.com/allatambov/allatambov.github.io/blob/master/PyProgPerm/Homework02.ipynb задачи] сдавать на [https://www.dropbox.com/request/ini9FcfBF5Crwa5T5Nze Dropbox] || 11.06 23:59 || 11.06 23:59 | ||
+ | |- | ||
+ | | Домашнее задание 7 || Глава [https://campus.datacamp.com/courses/data-manipulation-with-pandas/transforming-dataframes?ex=1 Transforming DataFrames] || 12.06 23:59 || 12.06 23:59 | ||
+ | |- | ||
+ | | Домашнее задание 8 || Глава [https://campus.datacamp.com/courses/data-manipulation-with-pandas/aggregating-dataframes?ex=1 Aggregating DataFrames] || 12.06 23:59 || 12.06 23:59 | ||
|- | |- | ||
+ | | Домашнее задание 9 || [https://github.com/allatambov/allatambov.github.io/blob/master/PyProgPerm/Homework03.ipynb задачи] сдавать на [https://www.dropbox.com/request/rCIb2VVPakaZuPQGw0kQ Dropbox] || 18.06 23:59 || 18.06 23:59 | ||
|} | |} |
Текущая версия на 03:28, 4 мая 2024
Дорогие студенты!
Это страница обязательного курса «Программирование на Python», читаемого на программе «Бизнес-информатика» 2 курса бакалавриата в 4 модуле
2021-2022 учебного года. Курс реализуется в смешанном формате, онлайн часть обеспечивается главами курсов на платформе DataCamp.
Практические занятия ведёт: Тамбовцева Алла Андреевна.
Содержание
- 1 Правила игры
- 2 Программное обеспечение
- 3 Материалы
- 3.1 Введение в Python. Переменные и типы данных. Ввод и вывод. (4 и 7 апреля)
- 3.2 Списки и цикл for. Методы на строках. Работа с файлами. (11 и 14 апреля)
- 3.3 Списки vs массивы. Условные конструкции. (18 и 21 апреля)
- 3.4 Цикл while. Функции в Python. (25 и 28 апреля)
- 3.5 Кортежи и словари. Формат JSON. (12 и 14 мая)
- 3.6 Объектно-ориентированное и функциональное программирование в Python. (16 и 19 мая)
- 3.7 Парсинг HTML с BeautifulSoup: часть 1 (26 и 28 мая)
- 3.8 Парсинг HTML с BeautifulSoup: часть 2 (30 мая и 2 июня)
- 3.9 Введение в API. Работа с API ВКонтакте. (6 июня и 9 июня)
- 3.10 Датафреймы pandas. (16 июня и 18 июня)
- 4 Домашние задания
Правила игры
Формула оценки: Итог = 0.3 * Контрольная работа + 0.2 * Домашние задания + 0.1 * Онлайн-курс + 0.4 * Экзамен.
- Контрольная работа состоит из двух частей: теоретической и практической. Теоретическая часть содержит тестовые и открытые вопросы по синтаксису, типам и структурам данных в Python, во время её выполнения нельзя запускать код на компьютере и пользоваться материалами. Практическая часть состоит из задач по программированию, во время её выполнения можно пользоваться любыми открытыми источниками, но нельзя создавать новые вопросы на форумах и подобных ресурсах. Оценка за КР – целое число в 10-балльной шкале.
- Экзамен проходит в том же формате, что и контрольная работа. Оценка за экзамен – целое число в 10-балльной шкале.
- Домашние задания представляют собой набор задач по программированию по пройденным темам. Оценка за домашние задания – неокруглённое среднее арифметическое за все домашние задания по курсу.
- Оценка за Онлайн-курс формируется как доля прослушанных студентом глав на DataCamp от общего количества назначенных для прослушивания глав, домноженная на 10, без округления.
При сдаче домашнего задания позже указанного срока предусмотрены штрафы. Опоздание в пределах часа ведёт к штрафу 10% от полученной оценки,
в пределах суток – к штрафу 30%, в пределах недели – к штрафу 70%. Дедлайны для прослушивания глав онлайн-курса жёсткие, главу по предложенной теме необходимо пройти до практического занятия по этой теме.
Программное обеспечение
На курсе мы будем работать в двух средах: PyCharm и Jupyter Notebook.
- PyCharm – профессиональная среда для разработки, работает преимущественно с исполняемыми файлами, содержащими программы на Python (файлы с расширением .py).
- Jupyter Notebook – продукт проекта Jupyter, более простая среда для знакомства с языком, часто используется в дата-аналитике и машинном обучении, позволяет создавать красиво оформленные файлы с кодом, текстом и графиками (файлы с расширением .ipynb).
Скачать PyCharm можно здесь, достаточно версии Community.
Jupyter Notebook можно скачать как отдельно, так и внутри дистрибутива Anaconda, который включает в себя интерпретатор языка Python, библиотеки для обработки, анализа и визуализации данных:
- Если у вас установлен интерпретатор Python и вы знакомы с командой pip install, можно поставить Jupyter Notebook отдельно по этой инструкции.
- Если вы не знакомы с Python, рекомендуется поставить дистрибутив Anaconda, скачать можно здесь.
Также есть возможность работать в Jupyter Notebook онлайн, используя ресурс Google Colab (для создания и редактирования файлов нужен аккаунт Gmail). PyCharm в бесплатной версии Community умеет открывать ipynb-файлы, созданные в Jupyter Notebook, но только режиме чтения, редактировать их нельзя.
Материалы
Введение в Python. Переменные и типы данных. Ввод и вывод. (4 и 7 апреля)
- Знакомство со средой Jupyter Notebook. Инструкция по работе с Jupyter Notebook. Знакомство с Jupyter Notebook и Markdown (читать, ipynb).
- Вычисления и переменные в Python (читать, ipynb). Типы данных, ввод и вывод, форматирование строк (читать, ipynb).
- Стандарты оформления кода Python: PEP8.
Дополнительно:
- Pythontutor: визуализатор кода, вычисления, ввод и вывод.
- Markdown и Jupyter: больше про Markdown, интерактивные виджеты в Jupyter.
- LaTeX: ShareLaTeX для желающих, документация на английском, материалы других курсов по LaTeX.
Списки и цикл for. Методы на строках. Работа с файлами. (11 и 14 апреля)
- Практикум 1. Списки, цикл for, методы на строках (задания, решения, py-файлы).
- Методы на списках (обзор). Функция range() и цикл for (конспект, ipynb). Методы на строках (конспект, ipynb).
- Чтение и запись текстовых файлов (конспект, ipynb).
Дополнительно:
- Конспект по спискам и циклу for.
- Конспект по методам на списках.
- Pythontutor: цикл for, списки, строки.
Списки vs массивы. Условные конструкции. (18 и 21 апреля)
- Проверка условий: конспект. Условные конструкции в Python: конспект.
- Практикум 2: списки vs массивы, условия и циклы (задания, решения, py-файлы).
Дополнительно:
Цикл while. Функции в Python. (25 и 28 апреля)
- Цикл while: конспект.
- Полная лекция по функциям (И.В.Щуров).
- Практикум 3: функция в Python (задания, решения, py-файлы).
Дополнительно:
- Pythontutor: цикл while.
- Pythontutor: функции и рекурсия.
Кортежи и словари. Формат JSON. (12 и 14 мая)
- Кортежи (конспект). Словари (конспект). Работа с файлами JSON (конспект).
- Практикум 4: кортежи и словари в Python (задания, решения, py-файлы).
Дополнительно:
Объектно-ориентированное и функциональное программирование в Python. (16 и 19 мая)
Парсинг HTML с BeautifulSoup: часть 1 (26 и 28 мая)
Дополнительно:
Парсинг HTML с BeautifulSoup: часть 2 (30 мая и 2 июня)
- Практикум 6: продолжение парсинга новостей (читать, ipynb).
- Исключения: конструкция try-except (конспект).
Дополнительно:
- Документация BeautifulSoup.
- Управление браузером с Selenium: пример с поиском по сайту, пример с поиском ВКонтакте.
Введение в API. Работа с API ВКонтакте. (6 июня и 9 июня)
- Получение доступа к API ВКонтакте: инструкция.
- Документация API ВКонтакте.
- Работа с API ВКонтакте: собираем посты со стены: решения практикума.
- Видеозаписи занятий.
Дополнительно:
- Работа с API ВКонтакте: собираем информацию о друзьях: конспект.
Датафреймы pandas. (16 июня и 18 июня)
- Данные для работы: firtree.csv, polit.csv.
- Массивы NumPy, последовательности и датафреймы Pandas (читать, скачать).
- Работа с датафреймами pandas: часть 1 (читать, скачать), часть 2 (читать, скачать), часть 3 (читать, скачать).
- Практикум 8 с решениями.
Домашние задания
Из заданий на DataCamp формируется оценка за онлайн-курс, из обычных домашних заданий – оценка за домашние задания.
Домашнее задание | Задание | Дедлайн (группы 1-2) | Дедлайн (группы 3-4) |
---|---|---|---|
Домашнее задание 1 | Глава Python Lists | 11.04 11:00 | 14.04 11:00 |
Домашнее задание 2 | Глава NumPy | 18.04 11:00 | 21.04 11:00 |
Домашнее задание 3 | Глава Fundamental data types | 29.04 11:00 | 29.04 11:00 |
Домашнее задание 4 | задачи сдавать на Dropbox | 05.05 23:59 | 05.05 23:59 |
Домашнее задание 5 | Глава Dictionaries – the root of Python | 19.05 23:59 | 19.05 23:59 |
Домашнее задание 6 | задачи сдавать на Dropbox | 11.06 23:59 | 11.06 23:59 |
Домашнее задание 7 | Глава Transforming DataFrames | 12.06 23:59 | 12.06 23:59 |
Домашнее задание 8 | Глава Aggregating DataFrames | 12.06 23:59 | 12.06 23:59 |
Домашнее задание 9 | задачи сдавать на Dropbox | 18.06 23:59 | 18.06 23:59 |