From c16234dc07ba4091774dc3035c8acf9c1ad84495 Mon Sep 17 00:00:00 2001 From: Svetlana Sabitova Date: Mon, 5 Jan 2026 03:40:56 +0500 Subject: [PATCH 1/8] Add log1 notebook and scripts, update pre-commit config --- .pre-commit-config.yaml | 2 +- log1.ipynb | 40 +++++++ log1.py | 9 ++ std out | 223 ++++++++++++++++++++++++++++++++++++++++ 4 files changed, 273 insertions(+), 1 deletion(-) create mode 100644 log1.ipynb create mode 100644 log1.py create mode 100644 std out diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 6341a1aa..5c83b8cf 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -15,7 +15,7 @@ repos: - --warn-only exclude: '.*\.md$' - repo: https://github.com/PyCQA/docformatter - rev: "eb1df347edd128b30cd3368dddc3aa65edcfac38" + rev: "v1.7.7" hooks: - id: docformatter args: [--in-place, --wrap-descriptions=120, --style=google] diff --git a/log1.ipynb b/log1.ipynb new file mode 100644 index 00000000..c128217b --- /dev/null +++ b/log1.ipynb @@ -0,0 +1,40 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "a5c7f761", + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"Module for logging experiment results.\n", + "\n", + "This notebook contains utilities for logging and analysis.\n", + "\"\"\"\n" + ] + }, + { + "cell_type": "markdown", + "id": "33ff615f", + "metadata": {}, + "source": [ + "04/01\n", + "1. Закончила выполнение intro, c Cursor разобралась\n", + "2. Начала проходить курс по Python\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "name": "python", + "version": "3.13.11" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/log1.py b/log1.py new file mode 100644 index 00000000..982cf884 --- /dev/null +++ b/log1.py @@ -0,0 +1,9 @@ +"""Module for logging experiment results. + +This notebook contains utilities for logging and analysis. +""" + +# 04/01 +# 1. Закончила выполнение intro, c Cursor разобралась +# 2. Начала проходить курс по Python +# diff --git a/std out b/std out new file mode 100644 index 00000000..e2af5261 --- /dev/null +++ b/std out @@ -0,0 +1,223 @@ +commit 1fc080684dc2f3926711adaa8d482161a286881e (HEAD -> main, upstream/main, upstream/HEAD, origin/main, origin/HEAD) +Author: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> +Date: Thu Dec 18 01:18:34 2025 +0300 + + Update README.md + + Signed-off-by: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> + +commit 8458cf2836320fd4d75a9d1332044763b899d694 +Author: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> +Date: Thu Dec 18 01:16:03 2025 +0300 + + Update README.md + + Signed-off-by: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> + +commit e9d9583ad3166caf442036fd51bbd5e9e1b05d9e +Author: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> +Date: Thu Dec 18 01:15:41 2025 +0300 + + Update README.md + + Signed-off-by: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> + +commit 4f8a6e28b1047889e0e72a611bdbc48de7c5c7b9 +Author: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> +Date: Thu Dec 18 01:14:31 2025 +0300 + + Update README.md + + Signed-off-by: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> + +commit 07bc4ad4bf9714212e60368c45870befd81a3743 +Author: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> +Date: Sat Dec 13 16:37:45 2025 +0300 + + Update README.md + + Signed-off-by: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> + +commit 0589cd0d4d243de3676cca8e378d3469b4c14de5 +Author: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> +Date: Sat Dec 13 16:36:53 2025 +0300 + + Update README.md + + Signed-off-by: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> + +commit c5f8f9d6264ceca49faf075b8affbc84eb2a8418 +Author: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> +Date: Mon Dec 1 03:42:45 2025 +0300 + + Update README.md + + Signed-off-by: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> + +commit 79ac80d08c6e2826fd2f4506bfe873db1eb3cb67 +Author: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> +Date: Fri Nov 28 19:02:14 2025 +0300 + + 120 + + Signed-off-by: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> + +commit 7d9f06351f04884e4f16bde85c4db8c2e45dd152 +Author: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> +Date: Tue Nov 25 04:27:45 2025 +0300 + + Update README.md + + Signed-off-by: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> + +commit 4e07c9d220c04a03d341551bdb94d687e978d506 +Author: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> +Date: Tue Nov 25 04:25:50 2025 +0300 + + Update README.md + + Signed-off-by: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> + +commit dc3d33b66fb63a1ca68c43bd25d51344caf0f277 +Author: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> +Date: Tue Nov 25 04:22:40 2025 +0300 + + Update README.md + + Signed-off-by: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> + +commit 1ed30fa45a59e77ee9a96594bc3b1ddbf99fa5b5 +Author: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> +Date: Tue Nov 25 04:22:19 2025 +0300 + + Update README.md + + Signed-off-by: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> + +commit 0d397a8b39e8f3560e76c25d2637a5bbdde542a5 +Author: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> +Date: Tue Nov 25 04:21:03 2025 +0300 + + Update README.md + + Signed-off-by: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> + +commit 11f63e86bb45becb7affabfdde03cb6b5a672b67 +Author: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> +Date: Tue Nov 25 04:19:36 2025 +0300 + + Update README.md + + Signed-off-by: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> + +commit 1e9438a397d34c2f296fca3e19ee6404929f7711 +Author: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> +Date: Tue Nov 25 04:14:14 2025 +0300 + + Update README.md + + Signed-off-by: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> + +commit fd4e5a1fee92c7ef330f727fcf6fbb4e25ad9fea +Author: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> +Date: Tue Nov 25 04:12:53 2025 +0300 + + Update README.md + + Signed-off-by: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> + +commit 0d77ab2dfda6a798de21ddff25d98d6c409aabee +Author: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> +Date: Tue Nov 25 04:09:56 2025 +0300 + + Update README.md + + Signed-off-by: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> + +commit db1ec3f5139ff9b5fa941df2fc8b8bf1bb82c832 +Author: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> +Date: Sun Nov 23 22:36:24 2025 +0300 + + Update README.md + + Signed-off-by: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> + +commit f729a1cc82bbec2c6666c5bbf7c110c6020a469d +Author: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> +Date: Thu Nov 6 16:39:42 2025 +0300 + + Update README.md + + Signed-off-by: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> + +commit 9ecfbec0409ad19c8b118a46fd2a0242d5d06204 +Author: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> +Date: Thu Nov 6 16:38:10 2025 +0300 + + Update README.md + + Signed-off-by: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> + +commit f71a705e33426c28abd34dcc61a382144935cb9c +Author: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> +Date: Thu Nov 6 16:33:56 2025 +0300 + + Update README.md + + Signed-off-by: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> + +commit 60a6d291d1f2991be09b8e8e0c6d6a0c5c553615 +Author: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> +Date: Thu Nov 6 16:07:55 2025 +0300 + + Update README.md + + Signed-off-by: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> + +commit 2750d42c4919f5847a71970d506b84c6d7cd6533 +Author: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> +Date: Thu Nov 6 15:55:23 2025 +0300 + + Update README.md + + Signed-off-by: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> + +commit b089c54231bc8635cba75a2072428a207790c198 +Author: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> +Date: Thu Nov 6 15:45:49 2025 +0300 + + Update README.md + + Signed-off-by: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> + +commit c63b0d91bc854f0bff8cf788521099e39a40bd9e +Author: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> +Date: Thu Nov 6 15:39:18 2025 +0300 + + Update README.md + + Signed-off-by: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> + +commit fc07c2af1c6f44e8e6739c562f28fa08c87d563e +Author: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> +Date: Thu Nov 6 15:33:02 2025 +0300 + + Update README.md + + Signed-off-by: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> + +commit 2a17b416637022b87b9a12ba519e7496139d1ac5 +Author: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> +Date: Thu Nov 6 15:24:53 2025 +0300 + + Update README.md + + Signed-off-by: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> + +commit 0ab494ffe89725095c20db976c31bc9c2d301b8f +Author: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> +Date: Thu Nov 6 15:19:22 2025 +0300 + + Update README.md + + Signed-off-by: Ruslan Senatorov <55090151+ruslanse \ No newline at end of file From 9f100e3117a44f8904cee7495e91841a72961ef6 Mon Sep 17 00:00:00 2001 From: Svetlana Sabitova Date: Thu, 8 Jan 2026 04:03:27 +0500 Subject: [PATCH 2/8] [TASK] Quiz #6 (https://github.com/SENATOROVAI/intro-cs/issues/6) Closes https://github.com/SENATOROVAI/intro-cs/issues/6 --- log.ipynb | 71 +++++++++++ log.py | 11 ++ log1.ipynb | 40 ------ log1.py | 9 -- quiz1.ipynb | 208 +++++++++++++++++++++++++++++++ quiz1.py | 158 ++++++++++++++++++++++++ quiz2.ipynb | 350 ++++++++++++++++++++++++++++++++++++++++++++++++++++ quiz2.py | 297 ++++++++++++++++++++++++++++++++++++++++++++ 8 files changed, 1095 insertions(+), 49 deletions(-) create mode 100644 log.ipynb create mode 100644 log.py delete mode 100644 log1.ipynb delete mode 100644 log1.py create mode 100644 quiz1.ipynb create mode 100644 quiz1.py create mode 100644 quiz2.ipynb create mode 100644 quiz2.py diff --git a/log.ipynb b/log.ipynb new file mode 100644 index 00000000..3704f784 --- /dev/null +++ b/log.ipynb @@ -0,0 +1,71 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "a5c7f761", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'Module for logging experiment results.'" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\"\"\"Module for logging experiment results.\"\"\"\n" + ] + }, + { + "cell_type": "markdown", + "id": "33ff615f", + "metadata": {}, + "source": [ + "04/01\n", + "1. Закончила выполнение intro, c Cursor разобралась.\n", + "2. Начала проходить курс по Python.\n" + ] + }, + { + "cell_type": "markdown", + "id": "f6cb4978", + "metadata": {}, + "source": [ + "7/01\n", + "1. Выполнила quiz 1 b quiz 2" + ] + }, + { + "cell_type": "markdown", + "id": "3ceda156", + "metadata": {}, + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.13.11" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/log.py b/log.py new file mode 100644 index 00000000..b3bfb8fd --- /dev/null +++ b/log.py @@ -0,0 +1,11 @@ +"""Module for logging experiment results.""" + +# 04/01 +# 1. Закончила выполнение intro, c Cursor разобралась. +# 2. Начала проходить курс по Python. +# + +# 7/01 +# 1. Выполнила quiz 1 b quiz 2 + +# diff --git a/log1.ipynb b/log1.ipynb deleted file mode 100644 index c128217b..00000000 --- a/log1.ipynb +++ /dev/null @@ -1,40 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": null, - "id": "a5c7f761", - "metadata": {}, - "outputs": [], - "source": [ - "\"\"\"Module for logging experiment results.\n", - "\n", - "This notebook contains utilities for logging and analysis.\n", - "\"\"\"\n" - ] - }, - { - "cell_type": "markdown", - "id": "33ff615f", - "metadata": {}, - "source": [ - "04/01\n", - "1. Закончила выполнение intro, c Cursor разобралась\n", - "2. Начала проходить курс по Python\n" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "name": "python", - "version": "3.13.11" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/log1.py b/log1.py deleted file mode 100644 index 982cf884..00000000 --- a/log1.py +++ /dev/null @@ -1,9 +0,0 @@ -"""Module for logging experiment results. - -This notebook contains utilities for logging and analysis. -""" - -# 04/01 -# 1. Закончила выполнение intro, c Cursor разобралась -# 2. Начала проходить курс по Python -# diff --git a/quiz1.ipynb b/quiz1.ipynb new file mode 100644 index 00000000..f1e7afec --- /dev/null +++ b/quiz1.ipynb @@ -0,0 +1,208 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 2, + "id": "839d001a", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'Quiz 1.'" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\"\"\"Quiz 1.\"\"\"" + ] + }, + { + "cell_type": "markdown", + "id": "7c4ea25e", + "metadata": {}, + "source": [ + "Список вопросов к видео https://youtu.be/hW_7hodGxVU?si=tCEVs00xGt2q61eW (АЛГОРИТМ ПРИНЯТИЯ И ОТДАЧИ ДОМАШКИ):\n", + " \n", + "(По желанию )В ответе подробно всё опишите и обязательно нужно указывать тайм код из видео где я это сказал, по желанию, дополнительно прикладываем скриншот из видео.\n", + "Если вы знаете ответы на вопросы из Вашего опыта, то таймкоды из видео не надо указывать и т.д.\n", + "\n", + "1) Как понять, что домашка пришла?\n", + "В чате homework будет сообщение @а прими пул\n", + "2) Как принять домашку?\n", + "Заходим а Гитхаб десктоп, нажимаем Fetch origin, заходим в history и смотрим самый верхний коммит.\n", + "3) Зачем нужна кнопка history и какие функции появляются при нажатии правой кнопки мыши на коммит?\n", + "Кнопка history показывает коммиты. Если нажать правой кнопкой на коммит, то выйдет контекстное меню. \n", + "\n", + "3.1) Где брать ссылку на коммит? куда её отправлять? \n", + "Ссылку брать с Гитхаба и отправлять в чат homework, пишем \"Коммит отдал\"\n", + "4) Что такое файл лога? \n", + "В файле лога нужно заполнять в конце каждого урока. В этом файле нужно писать дату и что запомнилось в течение урока. \n", + "4.1) Когда нужно его пушить?\n", + "После заполнения и проверки на ошибки.\n", + "5) Что такое интерпритатор? \n", + "Это программа, которая построчно выполняет команды, написанные на языке программирования. \n", + "6) Где можно выбрать интерпритатор?\n", + "В правом верхнем углу. \n", + "7) Что такое модуль? \n", + "Это файл с расширением .py или .ipynb.\n", + "8) Как создать и отправить коммит?\n", + "Создать файл с расширением .ipynb, заполнить, проверить на ошибки, Commit&sync, Commit&push\n", + "9) Как посмотреть что коммит точно отправлен и находится в github?\n", + "Коммит должен быть виден на гитхабе и в Hidtory в кошке. \n", + "10) Какая команда показывает что код не прошёл проверки на ошибки? \n", + "Команда в терминале pre-commit run --all-files\n", + "10.1) Напишите список линтеров которые используются для проверки кода и дайте их краткую характеристику.\n", + "Mypy - проверяет типы\n", + "Pylint - проверяет соответствие стандартам кодирования.\n", + "Pydocstyle - ищет отсутствие docstring\n", + "Flake8 - обнаруживает стилистические ошибки\n", + "\n", + "\n", + "11) Как узнать какой именно линтер не прошёл проверку?\n", + "При проверке через терминал командой pre-commit run --all-files выйдет статус Failed.\n", + "12) Линтер Pylint видит markdown?\n", + "нет\n", + "13) Номер ячейки в терминале и номер ячейки в vs code может отличаться? в каком случае?\n", + "Может. Линтер не видит ячейки markdown.\n", + "14) Где посмотреть номер ячейки в vscode?\n", + "Можно посмотреть внизу справа. \n", + "15) В каком формате ipynb отправляется в гитхаб? причём здесь JSON?\n", + "Файлы ipynb отпраляются на гитхаб в формате JSON.\n", + "16) Где посмотреть в какой ячейке ошибка?\n", + "По коду ошибки или Ctrl+F.\n", + "17) Как запустить терминал?\n", + "Terminal - New Terminal\n", + "18) Что такое линтер?\n", + "Это программа, которая проверяет файл на корректность.\n", + "19) В какой сайт нужно вставлять код ошибки если ошибка связана с pylint?\n", + "На сайт pylint.readthedocs.io\n", + "20) Секция pydocstyle в большинстве случае автоматический закрывается после исправления ошибок в каком линтере?\n", + "В pylint\n", + "21) Что такое описание модуля? Оно должно отражать информацию о том что находится в модуле?\n", + "Это описание того, что находится в модуле. Должно отражвть информацию о том, что находится в модуле. \n", + "21.1) С какой git команды начинается утро программиста?\n", + "С команды Fetch origin. \n", + "22) После внесения изменений в файлах, кнопка open in vs code пропадает в кошке, как по другому открыть vs code из кошки?\n", + "Нажать правой кнопкой на Current repository и выбрать open in VS code.\n", + "23) Что такое stash? \n", + " Общее объяснение концепции.\n", + " stash - буфер обмена, где можно спрятать локальные изменения. \n", + " Мы можем временно сохранить наши изменения, не коммитя их а репозиторий, для дальнейших изменений. \n", + "23.1) Как сохранить стэш?\n", + " git командa(подсказка: https://t.me/c/1937296927/3602/19531): \n", + "git stash save \"Name_stash\" - сохранение в буфер обмена\n", + "git stash apply \"Number_stash\" - извлечение из буфера обмена.\n", + " Кнопка в vs code:\n", + "Stash changes and continue\n", + "23.2) Как восстановить стэш(подсказка: https://t.me/c/1937296927/3602/25747)?:\n", + "\n", + "\n", + " git команда(подсказка: https://t.me/c/1937296927/3602/19531)?:\n", + "git stash apply \"Number_stash\"\n", + "23.3) Различие между стэшем и коммитом. \n", + " Когда лучше сохранить изменения в стэше, а когда коммитить.\n", + " Коммитить - когда мы завершили действия и можем вылоожить в ветку.\n", + " Стэшить - когда мы не завершили работу и хотим вернуться, чтобы доделать. \n", + "23.4) Как просмотреть список сохраненных стэшей? \n", + " git команда (подсказка: https://t.me/c/1937296927/3602/19531):\n", + "git stash list \n", + "23.5) Как удалить стэш? \n", + " Команды для удаления отдельных стэшей или всех сразу.\n", + " git команда (подсказка: https://t.me/c/1937296927/3602/19531):\n", + "git stash drop\n", + "git stash clean\n", + "23.6) Практические примеры использования стэша. \n", + " Краткие сценарии, где стэш помогает.\n", + "Спрятать изменения в моменте, когда нужно поработать над другой задачей\n", + "Спрятать измения, когда возник конфликт.\n", + "24) Где посмотреть что есть конфликт в файлах? \n", + "Рядом с файлом readme будет стоять треугольник с восклицательным знаком. Нажимаем Open in VS Code. Зеленым цветом будет выделено то, что с гитхаба, синим - локальные изменения. \n", + "24.1) Когда он появляется?\n", + "Когда в файле работвют одновременно два человека. \n", + "25) Как решить конфликт в файлах?\n", + "Нажать Reserve in Merge Editor, Complete Merge. \n", + "26) Напишиие правильное утверждение\n", + "-Зелёное то что пришло с гитхаба и синее локальные изменения или синее то что пришло с гитхаба и зелёное это локальные изменения \n", + "Зеленое - с гитхаба\n", + "Синее - локальные изменения.\n", + "27) Если мы работаем в одном файле, можно ли принять pull после того как вы спрячете в стэш свои изменения? \n", + "да, можно.\n", + "27.1) Что может произойти когда stash восстановите после принятия pull?\n", + "Может произойти конфликт. \n", + "28) Сколько способов решения конфликтов было показано в видео? Напишите ЧИСЛО и укажите их способы.\n", + "2 способа\n", + "1 способ - с помощью Accept Incoming Change,Accept Current Change, Accept Both Changes\n", + "2 способ - вручную удалить то что не нужно. \n", + "29) Что делает кнопка complete merge?\n", + "Смерживает конечные изменения из конфликтов в один.\n", + "30) В какой чат нужно писать если остались вопросы?\n", + "в чат HELP ME\n", + "31) Что такое FORK? Зачем его делают? \n", + "Форк - это копия чужого репозитория. Делают, чтобы вносить изменения, не затрагивая оригинала. \n", + "32) Как скачать форкнутый репозиторий на локальный компьютер?\n", + "Нажать на него, выбрать Open in GitHub Desktop, затем Clone\n", + "33) С какой вероятностью ваши ошибки были уже решены? и кто их решил?\n", + "C вероятностью 90%. Их решил Сенаторов Руслан Олегович.\n", + "34) Как создать файл в vs code?\n", + "Нажать на листочек с плюсиком и ввести название и формат файла. \n", + "35) Файл лога нужно заполнять в конце каждого урока?\n", + "Да.\n", + "==================\n", + "\n", + "Дополнительные вопросы:\n", + "1)Какая команда конвертирует файл в py из ipynb? \n", + "подсказка https://t.me/c/1937296927/1/26527 \n", + "jupitex --to py \n", + "2) Что такое пакетный менеджер? Вы пользуетесь пакетным менеджером conda или pip? Какой лучше использовать для дата сайнс?\n", + "Пакетный менеджер - инструмент для установки и управления библиотеками/пакетами\n", + "Для Data Science лучше использовать Conda - он упраляет не только Python-пакетами, но и зависимостями системы, библиотеками (NumPy, SciPy) с нативными расширениями.\n", + "3) Почему расширение py лучше чем ipynb?\n", + "- удобнее для версионирования (Git лучше работает с текстом)\n", + "- Линтеры (Pilint, Pidocstyle) корректно работают только .py\n", + "- проще ревью кода\n", + "- лучше для продакшн-кода и автоматизации\n", + "4) Что такое pep8? \n", + "подсказка:https://peps.python.org/pep-0008/\n", + "pep8 - официальный стиль кода Python.\n", + "4.1) линтеры проверяют на соблюдение pep8?\n", + "Да. Flake8 и Pylint проверяют на соответствие pep8. \n", + "4.2) Какая нотация используется для создания переменных? \n", + "ответ на 85-95 страницы https://t.me/c/1937296927/1/16676\n", + "snake_case (нижнее подчеркивание), например, first_variable\n", + "4.3) Может ли переменная состоять из одной буквы например андерскор \"_\" ?\n", + "Да.\n", + "4.4) Зачем и где мы используем андерскор _ \n", + "в начале два и конце переменных\n", + "4.5) По PEP8 допустима переменная в одну букву?\n", + "ответ на 85-95 страницы https://t.me/c/1937296927/1/16676\n", + "да, но не рекомендовано для обычных переменных. Лучше использовать понятные имена. Исключения - в циклах, в малых областях видимости. \n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.13.11" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/quiz1.py b/quiz1.py new file mode 100644 index 00000000..3d3cc0e9 --- /dev/null +++ b/quiz1.py @@ -0,0 +1,158 @@ +"""Quiz 1.""" + +# Список вопросов к видео https://youtu.be/hW_7hodGxVU?si=tCEVs00xGt2q61eW (АЛГОРИТМ ПРИНЯТИЯ И ОТДАЧИ ДОМАШКИ): +# +# (По желанию )В ответе подробно всё опишите и обязательно нужно указывать тайм код из видео где я это сказал, по желанию, дополнительно прикладываем скриншот из видео. +# Если вы знаете ответы на вопросы из Вашего опыта, то таймкоды из видео не надо указывать и т.д. +# +# 1) Как понять, что домашка пришла? +# В чате homework будет сообщение @а прими пул +# 2) Как принять домашку? +# Заходим а Гитхаб десктоп, нажимаем Fetch origin, заходим в history и смотрим самый верхний коммит. +# 3) Зачем нужна кнопка history и какие функции появляются при нажатии правой кнопки мыши на коммит? +# Кнопка history показывает коммиты. Если нажать правой кнопкой на коммит, то выйдет контекстное меню. +# +# 3.1) Где брать ссылку на коммит? куда её отправлять? +# Ссылку брать с Гитхаба и отправлять в чат homework, пишем "Коммит отдал" +# 4) Что такое файл лога? +# В файле лога нужно заполнять в конце каждого урока. В этом файле нужно писать дату и что запомнилось в течение урока. +# 4.1) Когда нужно его пушить? +# После заполнения и проверки на ошибки. +# 5) Что такое интерпритатор? +# Это программа, которая построчно выполняет команды, написанные на языке программирования. +# 6) Где можно выбрать интерпритатор? +# В правом верхнем углу. +# 7) Что такое модуль? +# Это файл с расширением .py или .ipynb. +# 8) Как создать и отправить коммит? +# Создать файл с расширением .ipynb, заполнить, проверить на ошибки, Commit&sync, Commit&push +# 9) Как посмотреть что коммит точно отправлен и находится в github? +# Коммит должен быть виден на гитхабе и в Hidtory в кошке. +# 10) Какая команда показывает что код не прошёл проверки на ошибки? +# Команда в терминале pre-commit run --all-files +# 10.1) Напишите список линтеров которые используются для проверки кода и дайте их краткую характеристику. +# Mypy - проверяет типы +# Pylint - проверяет соответствие стандартам кодирования. +# Pydocstyle - ищет отсутствие docstring +# Flake8 - обнаруживает стилистические ошибки +# +# +# 11) Как узнать какой именно линтер не прошёл проверку? +# При проверке через терминал командой pre-commit run --all-files выйдет статус Failed. +# 12) Линтер Pylint видит markdown? +# нет +# 13) Номер ячейки в терминале и номер ячейки в vs code может отличаться? в каком случае? +# Может. Линтер не видит ячейки markdown. +# 14) Где посмотреть номер ячейки в vscode? +# Можно посмотреть внизу справа. +# 15) В каком формате ipynb отправляется в гитхаб? причём здесь JSON? +# Файлы ipynb отпраляются на гитхаб в формате JSON. +# 16) Где посмотреть в какой ячейке ошибка? +# По коду ошибки или Ctrl+F. +# 17) Как запустить терминал? +# Terminal - New Terminal +# 18) Что такое линтер? +# Это программа, которая проверяет файл на корректность. +# 19) В какой сайт нужно вставлять код ошибки если ошибка связана с pylint? +# На сайт pylint.readthedocs.io +# 20) Секция pydocstyle в большинстве случае автоматический закрывается после исправления ошибок в каком линтере? +# В pylint +# 21) Что такое описание модуля? Оно должно отражать информацию о том что находится в модуле? +# Это описание того, что находится в модуле. Должно отражвть информацию о том, что находится в модуле. +# 21.1) С какой git команды начинается утро программиста? +# С команды Fetch origin. +# 22) После внесения изменений в файлах, кнопка open in vs code пропадает в кошке, как по другому открыть vs code из кошки? +# Нажать правой кнопкой на Current repository и выбрать open in VS code. +# 23) Что такое stash? +# Общее объяснение концепции. +# stash - буфер обмена, где можно спрятать локальные изменения. +# Мы можем временно сохранить наши изменения, не коммитя их а репозиторий, для дальнейших изменений. +# 23.1) Как сохранить стэш? +# git командa(подсказка: https://t.me/c/1937296927/3602/19531): +# git stash save "Name_stash" - сохранение в буфер обмена +# git stash apply "Number_stash" - извлечение из буфера обмена. +# Кнопка в vs code: +# Stash changes and continue +# 23.2) Как восстановить стэш(подсказка: https://t.me/c/1937296927/3602/25747)?: +# +# +# git команда(подсказка: https://t.me/c/1937296927/3602/19531)?: +# git stash apply "Number_stash" +# 23.3) Различие между стэшем и коммитом. +# Когда лучше сохранить изменения в стэше, а когда коммитить. +# Коммитить - когда мы завершили действия и можем вылоожить в ветку. +# Стэшить - когда мы не завершили работу и хотим вернуться, чтобы доделать. +# 23.4) Как просмотреть список сохраненных стэшей? +# git команда (подсказка: https://t.me/c/1937296927/3602/19531): +# git stash list +# 23.5) Как удалить стэш? +# Команды для удаления отдельных стэшей или всех сразу. +# git команда (подсказка: https://t.me/c/1937296927/3602/19531): +# git stash drop +# git stash clean +# 23.6) Практические примеры использования стэша. +# Краткие сценарии, где стэш помогает. +# Спрятать изменения в моменте, когда нужно поработать над другой задачей +# Спрятать измения, когда возник конфликт. +# 24) Где посмотреть что есть конфликт в файлах? +# Рядом с файлом readme будет стоять треугольник с восклицательным знаком. Нажимаем Open in VS Code. Зеленым цветом будет выделено то, что с гитхаба, синим - локальные изменения. +# 24.1) Когда он появляется? +# Когда в файле работвют одновременно два человека. +# 25) Как решить конфликт в файлах? +# Нажать Reserve in Merge Editor, Complete Merge. +# 26) Напишиие правильное утверждение +# -Зелёное то что пришло с гитхаба и синее локальные изменения или синее то что пришло с гитхаба и зелёное это локальные изменения +# Зеленое - с гитхаба +# Синее - локальные изменения. +# 27) Если мы работаем в одном файле, можно ли принять pull после того как вы спрячете в стэш свои изменения? +# да, можно. +# 27.1) Что может произойти когда stash восстановите после принятия pull? +# Может произойти конфликт. +# 28) Сколько способов решения конфликтов было показано в видео? Напишите ЧИСЛО и укажите их способы. +# 2 способа +# 1 способ - с помощью Accept Incoming Change,Accept Current Change, Accept Both Changes +# 2 способ - вручную удалить то что не нужно. +# 29) Что делает кнопка complete merge? +# Смерживает конечные изменения из конфликтов в один. +# 30) В какой чат нужно писать если остались вопросы? +# в чат HELP ME +# 31) Что такое FORK? Зачем его делают? +# Форк - это копия чужого репозитория. Делают, чтобы вносить изменения, не затрагивая оригинала. +# 32) Как скачать форкнутый репозиторий на локальный компьютер? +# Нажать на него, выбрать Open in GitHub Desktop, затем Clone +# 33) С какой вероятностью ваши ошибки были уже решены? и кто их решил? +# C вероятностью 90%. Их решил Сенаторов Руслан Олегович. +# 34) Как создать файл в vs code? +# Нажать на листочек с плюсиком и ввести название и формат файла. +# 35) Файл лога нужно заполнять в конце каждого урока? +# Да. +# ================== +# +# Дополнительные вопросы: +# 1)Какая команда конвертирует файл в py из ipynb? +# подсказка https://t.me/c/1937296927/1/26527 +# jupitex --to py +# 2) Что такое пакетный менеджер? Вы пользуетесь пакетным менеджером conda или pip? Какой лучше использовать для дата сайнс? +# Пакетный менеджер - инструмент для установки и управления библиотеками/пакетами +# Для Data Science лучше использовать Conda - он упраляет не только Python-пакетами, но и зависимостями системы, библиотеками (NumPy, SciPy) с нативными расширениями. +# 3) Почему расширение py лучше чем ipynb? +# - удобнее для версионирования (Git лучше работает с текстом) +# - Линтеры (Pilint, Pidocstyle) корректно работают только .py +# - проще ревью кода +# - лучше для продакшн-кода и автоматизации +# 4) Что такое pep8? +# подсказка:https://peps.python.org/pep-0008/ +# pep8 - официальный стиль кода Python. +# 4.1) линтеры проверяют на соблюдение pep8? +# Да. Flake8 и Pylint проверяют на соответствие pep8. +# 4.2) Какая нотация используется для создания переменных? +# ответ на 85-95 страницы https://t.me/c/1937296927/1/16676 +# snake_case (нижнее подчеркивание), например, first_variable +# 4.3) Может ли переменная состоять из одной буквы например андерскор "_" ? +# Да. +# 4.4) Зачем и где мы используем андерскор _ +# в начале два и конце переменных +# 4.5) По PEP8 допустима переменная в одну букву? +# ответ на 85-95 страницы https://t.me/c/1937296927/1/16676 +# да, но не рекомендовано для обычных переменных. Лучше использовать понятные имена. Исключения - в циклах, в малых областях видимости. +# diff --git a/quiz2.ipynb b/quiz2.ipynb new file mode 100644 index 00000000..6cfd0aba --- /dev/null +++ b/quiz2.ipynb @@ -0,0 +1,350 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "f2a093aa", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'Quiz 2.'" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\"\"\"Quiz 2.\"\"\"" + ] + }, + { + "cell_type": "markdown", + "id": "9f4a527e", + "metadata": {}, + "source": [ + "Выполнение заданий по Питону \n", + "\n", + "Список вопросов к видео https://youtu.be/Si9MfV8uJ-0?si=JXHe-tsgOEwSTI5E (НАСТРОЙКА VSCODE, перенос строк, линтеры, работа с ячейками):\n", + "\n", + "\n", + "(По желанию)В ответе подробно всё опишите и обязательно нужно указывать тайм код из видео где я это сказал, по желанию, дополнительно прикладываем скриншот из видео.\n", + "\n", + "Если вы знаете ответы на вопросы из Вашего опыта, то таймкоды из видео не надо указывать и т.д.\n", + "\n", + "\n", + "1. Как включить автосохранение данных в VSCODE?\n", + "\n", + "\n", + "File - Auto Save\n", + "\n", + "https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&t=14\n", + "\n", + "\n", + "2. Как настроить перенос строки? \n", + "\n", + "\n", + "Preferences-Settings, в поисковую строку пишем wrap, в поле Editor в контекстном меню выбираем WordWrapColumn, длина строки 79, нажимаем Enter.\n", + "\n", + "https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&t=34\n", + "\n", + "\n", + "3. Сколько символов по pep8 разрешено на строке?\n", + "\n", + "\n", + "79\n", + "\n", + "https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=1m28s\n", + "\n", + "\n", + "4. Какие способы переноса строк показаны в видео:\n", + "\n", + "\n", + "Вариант 1.\n", + "\n", + "перенос комментариев - с помощью #\n", + "\n", + "https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ?=1m55s\n", + "\n", + "перенос кода - взять в скобки ( )\n", + "\n", + "https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=2m36s\n", + "\n", + "Вариант 2.\n", + "\n", + "длинную переменную разбить на две переменные, затем “склеить\" их, например, name_sum=name_1+name_2\n", + "\n", + "https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=4m\n", + "\n", + "\n", + "4.1 Строки с использованием обратного слэша (\\)\n", + "\n", + "\n", + "string_continued = \"This is a long string that we want to \" \\\n", + "\n", + " \"split across multiple lines.\"\n", + "\n", + "print(string_continued)\n", + "\n", + "\n", + "\n", + "4.2 Тройные кавычки (''' или \"\"\") \n", + "\n", + "\n", + "multi_line_string = \"\"\"This is a string that spans\n", + "\n", + "multiple lines. You can write freely\n", + "\n", + "and it will keep the line breaks.\"\"\"\n", + "\n", + "print(multi_line_string)\n", + "\n", + "\n", + "4.3 Создание списка строк и объединение с помощью join\n", + "\n", + "\n", + "strings = [\n", + "\n", + " \"This is the first line.\",\n", + "\n", + " \"This is the second line.\",\n", + "\n", + " \"This is the third line.\"\n", + "\n", + "]\n", + "\n", + "result = \"\\n\".join(strings) # Используем перенос строк '\\n'\n", + "\n", + "print(result)\n", + "\n", + "\n", + "4.4 Использование круглых скобок для продолжения строки\n", + "\n", + "long_string = (\n", + "\n", + " \"This is a very long string that I would like to \"\n", + "\n", + " \"continue on the next line.\"\n", + "\n", + ")\n", + "\n", + "print(long_string)\n", + "\n", + "\n", + "4.5 Форматированные строки (f-строки) с использованием скобок\n", + "\n", + "letter_a = 5\n", + "\n", + "letter_b = 6\n", + "\n", + "product_ab = letter_a * letter_b\n", + "\n", + "\n", + "message = (\n", + "\n", + " f\"when {letter_a} is multiplied by {letter_b}, \"\n", + "\n", + " f\"the result is {product_ab}\"\n", + "\n", + ")\n", + "\n", + "print(message)\n", + "\n", + "\n", + "4.6 Сложение строк с помощью +\n", + "\n", + "\n", + "string_part1 = \"This is the first part, \"\n", + "\n", + "string_part2 = \"and this is the second part.\"\n", + "\n", + "full_string = string_part1 + string_part2\n", + "\n", + "print(full_string)\n", + "\n", + "https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=3m55s\n", + "\n", + "\n", + "5. Проверка на ошибки c помощью кнопки problems, где она находится?\n", + "\n", + "\n", + "https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=4m49s\n", + "\n", + "Находится внизу окна редактора, слева. \n", + "\n", + "\n", + "6. Где в vscode находится клиент гита? как в нём отправить коммит? как принять домашку?\n", + "\n", + "\n", + "https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=6m24s\n", + "\n", + "Клиент находится в левой части окна(три кружочка)\n", + "\n", + "Чтобы отправить коммит, пишем коммит, затем нажимаем Commit\n", + "\n", + "Домашка принимается с помощью кнопки Pull.\n", + "\n", + "\n", + "7. Что такое GIT? он локальный? В нём можно посмотреть историю изменений файлов и вернуться к любому коммиту?\n", + "\n", + "\n", + "Git - это контроль версий. да, можно посмотреть \n", + "\n", + "https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=7m12s\n", + "\n", + "\n", + "8. Как вставить картинку в маркдаун? \n", + "\n", + "\n", + "С помощью сочетания клавиш Ctrl+V\n", + "\n", + "https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=8m03s\n", + "\n", + "\n", + "9. Где посмотреть длину строки в vs code?\n", + "\n", + "Скопировать строку в файл с расширением .py, внизу справа показывается количество символов. \n", + "\n", + "https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=1m25s\n", + "\n", + "\n", + "\n", + "10. Как поменять тип ячейки с питона на маркдаун?\n", + "\n", + "По умолчанию создается тип ячейки Code. Нажать на тип Python и выбрать в ниспадающем меню Markdown.\n", + "\n", + "https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=8m08s\n", + "\n", + "\n", + "11. Как запустить сразу все ячейки в юпитере?\n", + "\n", + "\n", + "https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=8m36s\n", + "\n", + "\n", + "Нажать Run All - запуск всех ячеек одновременно. \n", + "\n", + "\n", + "12. Как изменить размер картинки в юпитере? Нужно для этого знать HTML?\n", + "\n", + "img are, ссылка на картинку и её размер\n", + "\n", + "Да, нужно знать.\n", + "\n", + "https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=8m21s\n", + "\n", + "\n", + "13. Какой хоткей чтобы запустить ячейку с смещением на следующую?\n", + "\n", + "\n", + "Shift+Enter\n", + "\n", + "https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=8m49s\n", + "\n", + "\n", + "14. Как включить отображение номеров строк в юпитере(Cell line numbers)?\n", + "\n", + "Нажимаем на три точки в правом нижнем углу окна редактора и выбираем Show Cell line Number.\n", + "\n", + "https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=9m17s\n", + "\n", + "\n", + "15. Что такое \"Go To\" чем это полезно? Как перейти сразу на ошибочную ячейку?\n", + "\n", + "\n", + "https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=9m41s\n", + "\n", + "Показывает, в какой ячейке ошибка. Схватываем проблемную ячейку и тащим вниз, нажимаем “Go To”\n", + "\n", + "\n", + "16. Как очистить вывод ячеек которые уже запущены?\n", + "\n", + "\n", + "https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=10m51s\n", + "\n", + "Нужно нажать Clear All Outputs.\n", + "\n", + "\n", + "17. Как работать одновременно в нескольких файлах в VSCODE? Что такое SPLIT?\n", + "\n", + "https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=11m03s\n", + "\n", + "Split Editor позволяет работать одновременно в нескольких файлах. \n", + "\n", + "\n", + "18. Каким сочетанием убирается левый сайдбар?\n", + "\n", + "\n", + "https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=11m23s\n", + "\n", + "Ctrl+B, либо просто нажимаем на активное окно.\n", + "\n", + "\n", + "19. Кнопка два листочка это наши локальные файлы?\n", + "\n", + "\n", + "https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=11m36s\n", + "\n", + "Да\n", + "\n", + "\n", + "20. Какая ошибка появилась в трассировке при запуске всех ячеек DICT или LIST?\n", + "\n", + "https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=9m23s\n", + "\n", + "\n", + "21. Вы ознакомились с https://t.me/c/1937296927/832/19307? и https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet?\n", + "\n", + "\n", + "Ознакомилась\n", + "\n", + "\n", + "22. Что такое валидация?\n", + "\n", + "\n", + "Это проверка соответствия программного кода определённым правилам.\n", + "\n", + "\n", + "23. Что такое трассировка ошибки?\n", + "\n", + "\n", + "Трассировка - это визуализация ошибки \n", + "\n", + "https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=10m05s\n", + "\n", + "\n", + "24. Что значит отвалился интерпретатор?\n", + "\n", + "Это означает, что интерпритатор перестал работать или быть доступным, из-за чего программный код, который от него зависел, не может запуститься, выполнить команды или выдать ошибку. \n", + "\n" + ] + } + ], + "metadata": { + "jupytext": { + "formats": "ipynb,py:light" + }, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.13.11" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/quiz2.py b/quiz2.py new file mode 100644 index 00000000..85fb8870 --- /dev/null +++ b/quiz2.py @@ -0,0 +1,297 @@ +"""Quiz 2.""" + +# Выполнение заданий по Питону +# +# Список вопросов к видео https://youtu.be/Si9MfV8uJ-0?si=JXHe-tsgOEwSTI5E (НАСТРОЙКА VSCODE, перенос строк, линтеры, работа с ячейками): +# +# +# (По желанию)В ответе подробно всё опишите и обязательно нужно указывать тайм код из видео где я это сказал, по желанию, дополнительно прикладываем скриншот из видео. +# +# Если вы знаете ответы на вопросы из Вашего опыта, то таймкоды из видео не надо указывать и т.д. +# +# +# 1. Как включить автосохранение данных в VSCODE? +# +# +# File - Auto Save +# +# https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&t=14 +# +# +# 2. Как настроить перенос строки? +# +# +# Preferences-Settings, в поисковую строку пишем wrap, в поле Editor в контекстном меню выбираем WordWrapColumn, длина строки 79, нажимаем Enter. +# +# https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&t=34 +# +# +# 3. Сколько символов по pep8 разрешено на строке? +# +# +# 79 +# +# https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=1m28s +# +# +# 4. Какие способы переноса строк показаны в видео: +# +# +# Вариант 1. +# +# перенос комментариев - с помощью # +# +# https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ?=1m55s +# +# перенос кода - взять в скобки ( ) +# +# https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=2m36s +# +# Вариант 2. +# +# длинную переменную разбить на две переменные, затем “склеить" их, например, name_sum=name_1+name_2 +# +# https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=4m +# +# +# 4.1 Строки с использованием обратного слэша (\) +# +# +# string_continued = "This is a long string that we want to " \ +# +# "split across multiple lines." +# +# print(string_continued) +# +# +# +# 4.2 Тройные кавычки (''' или """) +# +# +# multi_line_string = """This is a string that spans +# +# multiple lines. You can write freely +# +# and it will keep the line breaks.""" +# +# print(multi_line_string) +# +# +# 4.3 Создание списка строк и объединение с помощью join +# +# +# strings = [ +# +# "This is the first line.", +# +# "This is the second line.", +# +# "This is the third line." +# +# ] +# +# result = "\n".join(strings) # Используем перенос строк '\n' +# +# print(result) +# +# +# 4.4 Использование круглых скобок для продолжения строки +# +# long_string = ( +# +# "This is a very long string that I would like to " +# +# "continue on the next line." +# +# ) +# +# print(long_string) +# +# +# 4.5 Форматированные строки (f-строки) с использованием скобок +# +# letter_a = 5 +# +# letter_b = 6 +# +# product_ab = letter_a * letter_b +# +# +# message = ( +# +# f"when {letter_a} is multiplied by {letter_b}, " +# +# f"the result is {product_ab}" +# +# ) +# +# print(message) +# +# +# 4.6 Сложение строк с помощью + +# +# +# string_part1 = "This is the first part, " +# +# string_part2 = "and this is the second part." +# +# full_string = string_part1 + string_part2 +# +# print(full_string) +# +# https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=3m55s +# +# +# 5. Проверка на ошибки c помощью кнопки problems, где она находится? +# +# +# https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=4m49s +# +# Находится внизу окна редактора, слева. +# +# +# 6. Где в vscode находится клиент гита? как в нём отправить коммит? как принять домашку? +# +# +# https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=6m24s +# +# Клиент находится в левой части окна(три кружочка) +# +# Чтобы отправить коммит, пишем коммит, затем нажимаем Commit +# +# Домашка принимается с помощью кнопки Pull. +# +# +# 7. Что такое GIT? он локальный? В нём можно посмотреть историю изменений файлов и вернуться к любому коммиту? +# +# +# Git - это контроль версий. да, можно посмотреть +# +# https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=7m12s +# +# +# 8. Как вставить картинку в маркдаун? +# +# +# С помощью сочетания клавиш Ctrl+V +# +# https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=8m03s +# +# +# 9. Где посмотреть длину строки в vs code? +# +# Скопировать строку в файл с расширением .py, внизу справа показывается количество символов. +# +# https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=1m25s +# +# +# +# 10. Как поменять тип ячейки с питона на маркдаун? +# +# По умолчанию создается тип ячейки Code. Нажать на тип Python и выбрать в ниспадающем меню Markdown. +# +# https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=8m08s +# +# +# 11. Как запустить сразу все ячейки в юпитере? +# +# +# https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=8m36s +# +# +# Нажать Run All - запуск всех ячеек одновременно. +# +# +# 12. Как изменить размер картинки в юпитере? Нужно для этого знать HTML? +# +# img are, ссылка на картинку и её размер +# +# Да, нужно знать. +# +# https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=8m21s +# +# +# 13. Какой хоткей чтобы запустить ячейку с смещением на следующую? +# +# +# Shift+Enter +# +# https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=8m49s +# +# +# 14. Как включить отображение номеров строк в юпитере(Cell line numbers)? +# +# Нажимаем на три точки в правом нижнем углу окна редактора и выбираем Show Cell line Number. +# +# https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=9m17s +# +# +# 15. Что такое "Go To" чем это полезно? Как перейти сразу на ошибочную ячейку? +# +# +# https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=9m41s +# +# Показывает, в какой ячейке ошибка. Схватываем проблемную ячейку и тащим вниз, нажимаем “Go To” +# +# +# 16. Как очистить вывод ячеек которые уже запущены? +# +# +# https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=10m51s +# +# Нужно нажать Clear All Outputs. +# +# +# 17. Как работать одновременно в нескольких файлах в VSCODE? Что такое SPLIT? +# +# https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=11m03s +# +# Split Editor позволяет работать одновременно в нескольких файлах. +# +# +# 18. Каким сочетанием убирается левый сайдбар? +# +# +# https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=11m23s +# +# Ctrl+B, либо просто нажимаем на активное окно. +# +# +# 19. Кнопка два листочка это наши локальные файлы? +# +# +# https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=11m36s +# +# Да +# +# +# 20. Какая ошибка появилась в трассировке при запуске всех ячеек DICT или LIST? +# +# https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=9m23s +# +# +# 21. Вы ознакомились с https://t.me/c/1937296927/832/19307? и https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet? +# +# +# Ознакомилась +# +# +# 22. Что такое валидация? +# +# +# Это проверка соответствия программного кода определённым правилам. +# +# +# 23. Что такое трассировка ошибки? +# +# +# Трассировка - это визуализация ошибки +# +# https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=10m05s +# +# +# 24. Что значит отвалился интерпретатор? +# +# Это означает, что интерпритатор перестал работать или быть доступным, из-за чего программный код, который от него зависел, не может запуститься, выполнить команды или выдать ошибку. +# +# From 80bf5e6ebffb44aa8f62b2288966b8ac19966451 Mon Sep 17 00:00:00 2001 From: Svetlana Sabitova Date: Tue, 20 Jan 2026 01:05:21 +0500 Subject: [PATCH 3/8] [TASK] Quiz #4(https://github.com/SENATOROVAI/intro-cs/issues/4) Closes https://github.com/SENATOROVAI/intro-cs/issues/4 --- python/cpython.ipynb | 179 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 179 insertions(+) create mode 100644 python/cpython.ipynb diff --git a/python/cpython.ipynb b/python/cpython.ipynb new file mode 100644 index 00000000..59e646f1 --- /dev/null +++ b/python/cpython.ipynb @@ -0,0 +1,179 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "c1ccfa97", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'Quiz 4.'" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\"\"\"Quiz 4.\"\"\"" + ] + }, + { + "cell_type": "markdown", + "id": "01f96160", + "metadata": {}, + "source": [ + "1. Что такое CPython и чем он отличается от Python?\n", + "Python - это язык программирования, а CPython - это и язык программирования, и интерпретатор одновременно. \n", + "3. Сколько существует реализаций Python, и какая из них самая популярная?\n", + "Существует 6 реализаций Python, самая популярная из них-CPython\n", + "4. На каком языке написан CPython?\n", + "CPython написан на языке С.\n", + "5. (опционально) Кто создал CPython?\n", + "CPython создал голландский программист Гвидо ван Россум.\n", + "\n", + "6. Почему Python считается быстрым, несмотря на то, что это интерпретируемый язык?\n", + "Потому что ядро CPython написано на языке С, и он вызывает инструкции из С.\n", + "\n", + "7. Напишите путь к Интерпретатору CPython на вашем компьютере\n", + "C:\\Users\\user\\anaconda3\\python.exe\n", + "\n", + "8. Что содержится в папке include в CPython?\n", + "В папке include в CPython находятся заголовочные файлы на языке С.\n", + "\n", + "9. Где можно найти исходный код CPython дайте ссылку на репозиторий гитхаб.\n", + "Ссылка на репозиторий гитхаб: https://github.com/python/cpython\n", + "\n", + "10. (опционально) Как работает интерпретатор CPython при выполнении кода?\n", + "Интерпретатор CPython выполняет код пошагово, преобразуя его в машинные инструкции для компьютера.\n", + "\n", + "11. Какая команда используется для запуска файла с помощью CPython?\n", + "python filename\n", + "\n", + "12. Можно ли запускать текстовые файлы через интерпретатор Python? Почему?\n", + "Можно, так как интерпретатору неважно, какие файлы запускать, главное – валидный пайтон-код.\n", + "\n", + "13. Как указать путь к интерпретатору и файлу для выполнения кода?\n", + "Через абсолютный или относительный путь. \n", + "\n", + "14. Чем PyPy отличается от CPython?\n", + "Этот интерпретатор работает в 10 раз быстрее, чем CPython.\n", + "\n", + "15. Почему PyPy не может использоваться для всех проектов на Python?\n", + "Это достаточно новый интерпретатор, и он ещё не совместим со всеми проектами на Python. \n", + "\n", + "16. Где можно скачать PyPy?\n", + "По ссылке: https://pypy.org/download.html\n", + "\n", + "17. Как установить PyPy после скачивания?\n", + "Извлечь папку и прописать пути в переменных средах.\n", + "\n", + "18. Как запустить файл с помощью PyPy?\n", + "В командной строке Windows ввести абсолютный путь до интерпретатора, пробел, абсолютный путь до файла, нажать Enter.\n", + "\n", + "19. Почему PyPy выполняет код быстрее, чем CPython?\n", + "PyPy использует Just-In-Time компилятор для компиляции Python в машинный код во время выполнения, что ускоряет работу.\n", + "\n", + "Практические задания\n", + "Задание 1: Поиск и установка CPython\n", + "Проверьте, установлен ли CPython на вашем компьютере:\n", + " Используйте поиск в меню \"Пуск\" (Windows) или терминале (Linux/Mac).\n", + " Введите команду python --version или python3 --version в терминале.\n", + "Если CPython не установлен, скачайте его с официального сайта Python https://www.python.org/downloads/ и установите.\n", + "\n", + "C:\\Users\\user>python --version\n", + "Python 3.13.9\n", + "\n", + "\n", + "Задание 2: Исследование структуры CPython\n", + "Найдите папку, где установлен Python (например, через команду where python в терминале или свойства ярлыка).\n", + "Откройте папку include и изучите её содержимое. Какое количество файлов на C там есть?\n", + "Перейдите на [GitHub-репозиторий CPython](https://github.com/python/cpython) и найдите файл README. Прочитайте информацию о проекте.\n", + "\n", + "В папке include количество файлов на C: 77.\n", + "\n", + "C:\\Users\\user>where python\n", + "C:\\Users\\user\\anaconda3\\python.exe\n", + "C:\\Users\\user\\AppData\\Local\\Programs\\Python\\Python310\\python.exe\n", + "C:\\Users\\user\\AppData\\Local\\Programs\\Python\\Python312\\python.exe\n", + "C:\\Users\\user\\AppData\\Local\\Microsoft\\WindowsApps\\python.exe\n", + "\n", + "C:\\Users\\user>\n", + "\n", + "Задание 3: Запуск файла с помощью CPython\n", + "Создайте текстовый файл example.txt с содержимым:\n", + "print(\"Hello from CPython!\")\n", + "Запустите файл через команду python <путь_до_файла> (замените <путь_до_файла> на фактический путь к вашему файлу).\n", + "Проверьте, что выводится на экран. Попробуйте изменить расширение файла на .py и повторите запуск.\n", + "C:\\Users\\user>C:\\Users\\user\\anaconda3\\Scripts\\ipython3.exe C:\\Users\\user\\Desktop\\Test1\\example.txt\n", + "Hello from CPython!\n", + "\n", + "C:\\Users\\user>C:\\Users\\user\\anaconda3\\Scripts\\ipython3.exe\n", + "C:\\Users\\user\\Desktop\\Test1\\example.py\n", + "Hello from CPython!\n", + "\n", + "\n", + "Задание 4: Установка и использование PyPy\n", + "Перейдите на [официальный сайт PyPy](https://www.pypy.org/) и скачайте подходящую версию для вашей операционной системы.\n", + "Распакуйте скачанный архив в удобное место.\n", + "Создайте файл example_pypy.py с кодом:\n", + "print(\"Hello from pypy!\")\n", + "Запустите файл через PyPy\n", + "pypy <путь_до_файла> (замените <путь_до_файла> на фактический путь к вашему файлу).\n", + "Проверьте, что выводится на экран. Попробуйте изменить расширение файла на .py и повторите запуск.\n", + "Вывод:\n", + "C:\\Users\\user>C:\\Users\\user\\Downloads\\pypy3.11-v7.3.20-win64\\pypy.exe C:\\Users\\user\\Desktop\\Test1\\example_pypy.py\n", + "Hello from PyPy\n", + "C:\\Users\\user>\n", + "Задание 5: Сравнение производительности CPython и PyPy\n", + "Создайте файл performance_test.py с кодом:\n", + " import time\n", + " start_time = time.time()\n", + " total = 0\n", + " for i in range(1, 10000000):\n", + " total += i\n", + " end_time = time.time()\n", + " \n", + " print(\"Result:\", total)\n", + " print(\"Execution time:\", end_time - start_time, \"seconds\")\n", + "Запустите этот файл сначала через CPython, а затем через PyPy. Запишите результаты времени выполнения для обоих интерпретаторов.\n", + "Сделайте вывод о разнице в производительности.\n", + "\n", + "Результат запуска через PyPy:\n", + "C:\\Users\\user>C:\\Users\\user\\Downloads\\pypy3.11-v7.3.20-win64\\pypy.exe C:\\Users\\user\\Desktop\\Test1\\performance_test.py\n", + "Result: 49999995000000\n", + "Execution time: 0.015625715255737305 seconds\n", + "\n", + "Результат запуска через iPython:\n", + "C:\\Users\\user>C:\\Users\\user\\anaconda3\\Scripts\\ipython.exe C:\\Users\\user\\Desktop\\Test1\\ performance_test.py\n", + "Result: 49999995000000\n", + "Execution time: 2.2144627571105957 seconds\n", + "Вывод: Время выполнения через интерпретатор iPython в 142 раза больше.\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.13.11" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From 157a2ecec21a8bc9b5a9ba9c8388db1c6fe2d051 Mon Sep 17 00:00:00 2001 From: Svetlana Sabitova Date: Mon, 26 Jan 2026 15:02:18 +0500 Subject: [PATCH 4/8] [TASK] Quiz#7 (https://github.com/SENATOROVAI/intro-cs/issues/7) Closes https://github.com/SENATOROVAI/intro-cs/issues/7 --- python/venv.ipynb | 100 ++++++++++++++++++++++++++++++++++++++++++++++ python/venv.py | 69 ++++++++++++++++++++++++++++++++ 2 files changed, 169 insertions(+) create mode 100644 python/venv.ipynb create mode 100644 python/venv.py diff --git a/python/venv.ipynb b/python/venv.ipynb new file mode 100644 index 00000000..94e8c6d1 --- /dev/null +++ b/python/venv.ipynb @@ -0,0 +1,100 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "a6e9c430", + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"Quiz 7.\"\"\"" + ] + }, + { + "cell_type": "markdown", + "id": "c01338ff", + "metadata": {}, + "source": [ + "1.\tЧто делает команда python -m venv venv? \n", + "\n", + "Ответ: создаёт виртуальное окружение, название окружения venv\n", + "\n", + "1.1 Что делает каждая команда в списке ниже?\n", + "\n", + "pip list - отображает пакеты, находящиеся в pip\n", + "pip freeze > requirements.txt - выгружает все пакеты в один файл, который называется requirements.txt.\n", + "pip install -r requirements.txt - устанавливает все пакеты из файла requirements.txt одним махом.\n", + "\n", + "2.\tЧто делает каждая команда в списке ниже?\n", + "\n", + "conda env list - используется для отображения списка всех существующих окружений conda вместе с путями к ним в файловой системе. \n", + "conda create -n env_name python=3.5 - создаёт виртуальное окружение conda с именем env_name, здесь python=3.5 - версия питона.\n", + "conda env update -n env_name -f file.yml - обновляет окружение env_name зависимостями из yaml-файла.\n", + "source activate env_name - активирует виртуальное окружение с именем env_name. \n", + "source deactivate - деактивирует виртуальное окружение \n", + "conda clean -all - удаляет кэш и неиспользуемые пакеты. \n", + "\n", + "3.\tВставьте скрин вашего терминала, где вы активировали сначала venv, потом conda, назовите окружение “Senatorov”.\n", + "\n", + "Ответ: image.png\n", + "4.\tКак установить необходимые пакеты внутрь виртуального окружения для conda/venv?\n", + "\n", + "Ответ: 1) для venv: \n", + "-активация нужного окружения и установка нужных зависимостей с помощью команды pip install “имя зависимости”.\n", + "-создать файл requirements.txt, записать туда все необходимые зависимости и с помощью команды pip install -r requirements.txt установить их.\n", + "2) для conda: \n", + "-активация нужного окружения и установка нужных зависимостей с помощью команды conda install “имя зависимости”.\n", + "-создать файл environment.yml, записать туда все необходимые зависимости и с помощью команды conda env update -f environment.yml установить их или обновить. \n", + "\n", + "5.\tЧто делают эти команды?\n", + "\n", + "pip freeze > requirements.txt -выгружает все пакеты venv в один файл, который называется requirements.txt.\n", + "conda env export > environment.yml - выгружает файлы зависимостей conda в файл environment.yml \n", + "\n", + "5.1 вставьте скрин, где будет видна папка VENV в вашем репозитории а также файлы зависимостей requirements.txt и environment.yml, файлы должны содержать зависимости\n", + "Ответ: image.png \n", + " image.png\n", + "6.\tЧто делают эти команды?\n", + "\n", + "pip install -r requirements.txt - устанавливает файлы зависимостей, находящиеся в requirements.txt, через пакетный менеджер pip.\n", + "conda env create -f environment.yml - устанавливает файлы зависимостей, находящиеся в environment.yml через пакетный менеджер conda.\n", + "\n", + "7.\tЧто делают эти команды?\n", + "\n", + "pip list - отображает список зависимостей выбранного окружения в venv.\n", + "pip show - выводит подробную информацию об установленном пакете: его версии, авторе, лицензии, месте установки, описании и зависимостях.\n", + "conda list - отображает список зависимостей выбранного окружения в conda. \n", + "\n", + "8.\tГде по умолчанию больше пакетов venv/pip или conda? и почему дата сайентисты используют conda? \n", + "\n", + "Ответ: больше пакетов в conda. В pip нет пакетов для Data science,поэтому дата сайентисты используют conda.\n", + "\n", + "9.\tвставьте скрин где будет видно, Выбор интерпретатора Python (conda) в VS Code/cursor\n", + "Ответ: image.png\n", + "\n", + "10.\tдобавьте в .gitignore папку SENATOROV\n", + "\n", + "11.\tЗачем нужно виртуальное окружение? \n", + "Ответ: виртуальное окружение - это изолированное пространство, в котором можно установить необходимую версию Python и пакеты, отличные от тех, которые установлены в системе. Это позволяет предотвратить конфликты между различными версиями Python и пакетов. Позволяет создавать “чистый” проект без лишних зависимостей. \n", + "\n", + "12.\tС этого момента надо работать в виртуальном окружении conda, ты научился(-ась) выгружать зависимости и работать с окружением?\n", + "Ответ: да\n", + "13.\tУдалите папку VENV, она больше не нужна, мы же не разрабы, нам нужна только conda\n", + "Ответ: удалила\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "name": "python", + "version": "3.13.11" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/python/venv.py b/python/venv.py new file mode 100644 index 00000000..b7ed7741 --- /dev/null +++ b/python/venv.py @@ -0,0 +1,69 @@ +"""Quiz 7.""" + +# 1. Что делает команда python -m venv venv? +# +# Ответ: создаёт виртуальное окружение, название окружения venv +# +# 1.1 Что делает каждая команда в списке ниже? +# +# pip list - отображает пакеты, находящиеся в pip +# pip freeze > requirements.txt - выгружает все пакеты в один файл, который называется requirements.txt. +# pip install -r requirements.txt - устанавливает все пакеты из файла requirements.txt одним махом. +# +# 2. Что делает каждая команда в списке ниже? +# +# conda env list - используется для отображения списка всех существующих окружений conda вместе с путями к ним в файловой системе. +# conda create -n env_name python=3.5 - создаёт виртуальное окружение conda с именем env_name, здесь python=3.5 - версия питона. +# conda env update -n env_name -f file.yml - обновляет окружение env_name зависимостями из yaml-файла. +# source activate env_name - активирует виртуальное окружение с именем env_name. +# source deactivate - деактивирует виртуальное окружение +# conda clean -all - удаляет кэш и неиспользуемые пакеты. +# +# 3. Вставьте скрин вашего терминала, где вы активировали сначала venv, потом conda, назовите окружение “Senatorov”. +# +# Ответ: image.png +# 4. Как установить необходимые пакеты внутрь виртуального окружения для conda/venv? +# +# Ответ: 1) для venv: +# -активация нужного окружения и установка нужных зависимостей с помощью команды pip install “имя зависимости”. +# -создать файл requirements.txt, записать туда все необходимые зависимости и с помощью команды pip install -r requirements.txt установить их. +# 2) для conda: +# -активация нужного окружения и установка нужных зависимостей с помощью команды conda install “имя зависимости”. +# -создать файл environment.yml, записать туда все необходимые зависимости и с помощью команды conda env update -f environment.yml установить их или обновить. +# +# 5. Что делают эти команды? +# +# pip freeze > requirements.txt -выгружает все пакеты venv в один файл, который называется requirements.txt. +# conda env export > environment.yml - выгружает файлы зависимостей conda в файл environment.yml +# +# 5.1 вставьте скрин, где будет видна папка VENV в вашем репозитории а также файлы зависимостей requirements.txt и environment.yml, файлы должны содержать зависимости +# Ответ: image.png +# image.png +# 6. Что делают эти команды? +# +# pip install -r requirements.txt - устанавливает файлы зависимостей, находящиеся в requirements.txt, через пакетный менеджер pip. +# conda env create -f environment.yml - устанавливает файлы зависимостей, находящиеся в environment.yml через пакетный менеджер conda. +# +# 7. Что делают эти команды? +# +# pip list - отображает список зависимостей выбранного окружения в venv. +# pip show - выводит подробную информацию об установленном пакете: его версии, авторе, лицензии, месте установки, описании и зависимостях. +# conda list - отображает список зависимостей выбранного окружения в conda. +# +# 8. Где по умолчанию больше пакетов venv/pip или conda? и почему дата сайентисты используют conda? +# +# Ответ: больше пакетов в conda. В pip нет пакетов для Data science,поэтому дата сайентисты используют conda. +# +# 9. вставьте скрин где будет видно, Выбор интерпретатора Python (conda) в VS Code/cursor +# Ответ: image.png +# +# 10. добавьте в .gitignore папку SENATOROV +# +# 11. Зачем нужно виртуальное окружение? +# Ответ: виртуальное окружение - это изолированное пространство, в котором можно установить необходимую версию Python и пакеты, отличные от тех, которые установлены в системе. Это позволяет предотвратить конфликты между различными версиями Python и пакетов. Позволяет создавать “чистый” проект без лишних зависимостей. +# +# 12. С этого момента надо работать в виртуальном окружении conda, ты научился(-ась) выгружать зависимости и работать с окружением? +# Ответ: да +# 13. Удалите папку VENV, она больше не нужна, мы же не разрабы, нам нужна только conda +# Ответ: удалила +# From c5877e1ac6867c3476e7f62a73e6670891495a90 Mon Sep 17 00:00:00 2001 From: Svetlana Sabitova Date: Fri, 30 Jan 2026 23:33:06 +0500 Subject: [PATCH 5/8] [TASK] Commits #5 (https://github.com/SENATOROVAI/intro-cs/issues/5) Closes https://github.com/SENATOROVAI/intro-cs/issues/5 --- python/commits.ipynb | 95 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 python/commits.ipynb diff --git a/python/commits.ipynb b/python/commits.ipynb new file mode 100644 index 00000000..711712e8 --- /dev/null +++ b/python/commits.ipynb @@ -0,0 +1,95 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "84aa8d56", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'Commits 5.'" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\"\"\"Commits 5.\"\"\"" + ] + }, + { + "cell_type": "markdown", + "id": "a5fe8ea0", + "metadata": {}, + "source": [ + "1.\tОпишите своими словами назначение каждого из этих типов коммитов:\n", + "feat, fix, docs, style, refactor, test, build, ci, perf, chore. \n", + "feat - добавление новой функциональности, то есть добавление новых модулей, изменение существующего кода, добавление UI-элементов.\n", + " Пример: \n", + "feat(web): add new icon\n", + "fix - используются для обозначения исправления ошибок(багов) в коде.\n", + "Пример: \n", + "fix(auth): fix token validation issue\n", + "docs - изменения в документации \n", + "Пример:\n", + "docs(readme): добавлена инструкция по установке \n", + "style - внесение правок по стилю(форматирование, пробелы, запятые и т.д.)\n", + "Пример: \n", + "style: форматирование отступов в модуле авторизации \n", + "refactor - изменения(наведение порядка) в коде без изменения его исходной функциональности.\n", + "test - добавление или изменение тестов\n", + "build - изменения, касающиеся сборки проекта - обновление версий библиотек, изменение скриптов сборки, настройки webpack/npm/gulp, обновление конфигурации Docker (связанной со сборкой).\n", + "Пример:\n", + "build: add dependencies for UI components\n", + "ci - настройка или изменение CI/CD (Continuous Integration/Continuous Delivery)\n", + "perl - оптимизация производительности - структурные, синтаксические или функциональные правки в Perl-коде, часто применяемые в рамках обслуживания систем (chore) или исправления ошибок (fix). \n", + "Пример: \n", + "●\tperl: Fix dependency check in script.pl\n", + "chore - прочие задачи (например, изменения в .gitignore),не меняющие код приложения, не исправляющие ошибки и не меняющие функциональности продукта.\n", + "2.\tПредставьте, что вы исправили баг в функции, которая некорректно округляет числа. Сделайте фиктивный коммит и напишите для него сообщение в соответствии с Conventional Commits (используя тип fix).\n", + "Ответ: \n", + "git commit -m “fix: financial rounding“\n", + "3.\tДобавление новой функциональности:\n", + "Допустим, вы реализовали новую функцию generateReport в проекте. Сделайте фиктивный коммит с типом feat, отражающий добавление этой функциональности\n", + "Ответ: \n", + "git commit -m “feat: add function generateReport“\n", + "4.\tМодификация формата кода или стилей:\n", + "Представьте, что вы поправили отступы и форматирование во всём проекте, не меняя логики кода. Сделайте фиктивный коммит с типом style. \n", + "Ответ: \n", + "git commit -m “style: replace style errors “\n", + "5.\tДокументация и тестирование:\n", + "Сделайте фиктивный коммит с типом docs, добавляющий или улучшающий документацию для вашей новой функции.\n", + "Ответ: \n", + "git commit -m “docs: update README with new contribution guidelines”\n", + "Сделайте фиктивный коммит с типом test, добавляющий тесты для этой же функции.\n", + "Ответ: \n", + "git commit -m “add mock tests”\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.13.11" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From f718a0eb5ae7da6696e30ba1735dd6a340c2c668 Mon Sep 17 00:00:00 2001 From: Svetlana Sabitova Date: Fri, 30 Jan 2026 23:33:06 +0500 Subject: [PATCH 6/8] [TASK] Commits #5 (https://github.com/SENATOROVAI/intro-cs/issues/5) Closes https://github.com/SENATOROVAI/intro-cs/issues/5 --- python/commits.ipynb | 95 ++++++++++++++++++++++++++++++++++++++++++++ python/commits.py | 45 +++++++++++++++++++++ 2 files changed, 140 insertions(+) create mode 100644 python/commits.ipynb create mode 100644 python/commits.py diff --git a/python/commits.ipynb b/python/commits.ipynb new file mode 100644 index 00000000..711712e8 --- /dev/null +++ b/python/commits.ipynb @@ -0,0 +1,95 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "84aa8d56", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'Commits 5.'" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\"\"\"Commits 5.\"\"\"" + ] + }, + { + "cell_type": "markdown", + "id": "a5fe8ea0", + "metadata": {}, + "source": [ + "1.\tОпишите своими словами назначение каждого из этих типов коммитов:\n", + "feat, fix, docs, style, refactor, test, build, ci, perf, chore. \n", + "feat - добавление новой функциональности, то есть добавление новых модулей, изменение существующего кода, добавление UI-элементов.\n", + " Пример: \n", + "feat(web): add new icon\n", + "fix - используются для обозначения исправления ошибок(багов) в коде.\n", + "Пример: \n", + "fix(auth): fix token validation issue\n", + "docs - изменения в документации \n", + "Пример:\n", + "docs(readme): добавлена инструкция по установке \n", + "style - внесение правок по стилю(форматирование, пробелы, запятые и т.д.)\n", + "Пример: \n", + "style: форматирование отступов в модуле авторизации \n", + "refactor - изменения(наведение порядка) в коде без изменения его исходной функциональности.\n", + "test - добавление или изменение тестов\n", + "build - изменения, касающиеся сборки проекта - обновление версий библиотек, изменение скриптов сборки, настройки webpack/npm/gulp, обновление конфигурации Docker (связанной со сборкой).\n", + "Пример:\n", + "build: add dependencies for UI components\n", + "ci - настройка или изменение CI/CD (Continuous Integration/Continuous Delivery)\n", + "perl - оптимизация производительности - структурные, синтаксические или функциональные правки в Perl-коде, часто применяемые в рамках обслуживания систем (chore) или исправления ошибок (fix). \n", + "Пример: \n", + "●\tperl: Fix dependency check in script.pl\n", + "chore - прочие задачи (например, изменения в .gitignore),не меняющие код приложения, не исправляющие ошибки и не меняющие функциональности продукта.\n", + "2.\tПредставьте, что вы исправили баг в функции, которая некорректно округляет числа. Сделайте фиктивный коммит и напишите для него сообщение в соответствии с Conventional Commits (используя тип fix).\n", + "Ответ: \n", + "git commit -m “fix: financial rounding“\n", + "3.\tДобавление новой функциональности:\n", + "Допустим, вы реализовали новую функцию generateReport в проекте. Сделайте фиктивный коммит с типом feat, отражающий добавление этой функциональности\n", + "Ответ: \n", + "git commit -m “feat: add function generateReport“\n", + "4.\tМодификация формата кода или стилей:\n", + "Представьте, что вы поправили отступы и форматирование во всём проекте, не меняя логики кода. Сделайте фиктивный коммит с типом style. \n", + "Ответ: \n", + "git commit -m “style: replace style errors “\n", + "5.\tДокументация и тестирование:\n", + "Сделайте фиктивный коммит с типом docs, добавляющий или улучшающий документацию для вашей новой функции.\n", + "Ответ: \n", + "git commit -m “docs: update README with new contribution guidelines”\n", + "Сделайте фиктивный коммит с типом test, добавляющий тесты для этой же функции.\n", + "Ответ: \n", + "git commit -m “add mock tests”\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.13.11" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/python/commits.py b/python/commits.py new file mode 100644 index 00000000..ad27d6fe --- /dev/null +++ b/python/commits.py @@ -0,0 +1,45 @@ +"""Commits 5.""" + +# 1. Опишите своими словами назначение каждого из этих типов коммитов: +# feat, fix, docs, style, refactor, test, build, ci, perf, chore. +# feat - добавление новой функциональности, то есть добавление новых модулей, изменение существующего кода, добавление UI-элементов. +# Пример: +# feat(web): add new icon +# fix - используются для обозначения исправления ошибок(багов) в коде. +# Пример: +# fix(auth): fix token validation issue +# docs - изменения в документации +# Пример: +# docs(readme): добавлена инструкция по установке +# style - внесение правок по стилю(форматирование, пробелы, запятые и т.д.) +# Пример: +# style: форматирование отступов в модуле авторизации +# refactor - изменения(наведение порядка) в коде без изменения его исходной функциональности. +# test - добавление или изменение тестов +# build - изменения, касающиеся сборки проекта - обновление версий библиотек, изменение скриптов сборки, настройки webpack/npm/gulp, обновление конфигурации Docker (связанной со сборкой). +# Пример: +# build: add dependencies for UI components +# ci - настройка или изменение CI/CD (Continuous Integration/Continuous Delivery) +# perl - оптимизация производительности - структурные, синтаксические или функциональные правки в Perl-коде, часто применяемые в рамках обслуживания систем (chore) или исправления ошибок (fix). +# Пример: +# ● perl: Fix dependency check in script.pl +# chore - прочие задачи (например, изменения в .gitignore),не меняющие код приложения, не исправляющие ошибки и не меняющие функциональности продукта. +# 2. Представьте, что вы исправили баг в функции, которая некорректно округляет числа. Сделайте фиктивный коммит и напишите для него сообщение в соответствии с Conventional Commits (используя тип fix). +# Ответ: +# git commit -m “fix: financial rounding“ +# 3. Добавление новой функциональности: +# Допустим, вы реализовали новую функцию generateReport в проекте. Сделайте фиктивный коммит с типом feat, отражающий добавление этой функциональности +# Ответ: +# git commit -m “feat: add function generateReport“ +# 4. Модификация формата кода или стилей: +# Представьте, что вы поправили отступы и форматирование во всём проекте, не меняя логики кода. Сделайте фиктивный коммит с типом style. +# Ответ: +# git commit -m “style: replace style errors “ +# 5. Документация и тестирование: +# Сделайте фиктивный коммит с типом docs, добавляющий или улучшающий документацию для вашей новой функции. +# Ответ: +# git commit -m “docs: update README with new contribution guidelines” +# Сделайте фиктивный коммит с типом test, добавляющий тесты для этой же функции. +# Ответ: +# git commit -m “add mock tests” +# From 760439c9fb7b994550127b6fb76f0d3c09f90eef Mon Sep 17 00:00:00 2001 From: Svetlana Sabitova Date: Mon, 2 Feb 2026 23:22:17 +0500 Subject: [PATCH 7/8] [TASK] Issues # 2 (https://github.com/SENATOROVAI/intro-cs/issues/2) Closes https://github.com/SENATOROVAI/intro-cs/issues/2 --- python/issues.ipynb | 190 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 190 insertions(+) create mode 100644 python/issues.ipynb diff --git a/python/issues.ipynb b/python/issues.ipynb new file mode 100644 index 00000000..3c86586c --- /dev/null +++ b/python/issues.ipynb @@ -0,0 +1,190 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "719c7baf", + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"Issues Task 2.\"\"\"" + ] + }, + { + "cell_type": "markdown", + "id": "7af62bfb", + "metadata": {}, + "source": [ + "[TASK] issues #2\n", + "Общие вопросы\n", + "1. Что такое Issues на GitHub и для чего они используются?\n", + "Ответ: Issues — это встроенная на GitHub система учёта задач, багов и предложений,\n", + "позволяющая как разработчикам, так и пользователям сообщать о проблемах,\n", + "предлагать улучшения и обсуждать различные аспекты проекта.\n", + "2. Чем Issues отличаются от других инструментов управления задачами?\n", + "Ответ: Issues связаны непосредственно с репозиторием, автоматически связываются с\n", + "коммитами и пулл-реквестами, имеют встроенную систему меток и milestone’ов, и\n", + "доступны всем участникам репозитория.\n", + "3. Какие основные компоненты (поля) есть у каждого Issue?\n", + "Ответ: Title (заголовок) и Description(описание), теги(Labels), исполнителя (Assignees),\n", + "Milestone, связанные Pull Requests, комментарии, статус, дата создания и последнего\n", + "обновления.\n", + "Создание Issues\n", + "4. Как создать новое Issue в репозитории?\n", + "Ответ: чтобы создать новый Issue, нужно зайти в репозиторий. Допустим, мы нашли\n", + "файл с проблемным кодом. Выделяем строки проблемной кода в файле, копируем\n", + "permalink. Затем нужно открыть вкладку “Issues” нажать зеленую кнопку “New Issue”.\n", + "Далее заполняем заголовок(Title) и описание (Description), при необходимости можно\n", + "использовать шаблоны, затем нажимаем на кнопку «Submit new issue».\n", + "5. Какие данные рекомендуется указывать в описании Issue для лучшего\n", + "понимания задачи?\n", + "Ответ: содержание задачи. Например, файл и строки кода, которые нужно\n", + "прокомментировать.\n", + "6. Какие теги (labels) можно добавить к Issue? Какие из них стандартные?\n", + "Ответ: по умолчанию, GitHub предлагает следующие метки:\n", + "bug - что-то не работает\n", + "documentation - улучшение или добавление документации\n", + "duplicate - указывает на то, что такой Issue уже существует.\n", + "enhancement - указывает на новые запросы функций\n", + "good first Issue - для тех, кто создаёт Issue впервые\n", + "help wanted - указывает на то, что нужна помощь по какому-либо вопросу или запросу\n", + "на слияние\n", + "invalid - указывает на неактуальность\n", + "question - указывает на необходимость получения информации\n", + "wontfix - указывает на то, что работа над проблемой продолжаться не будет.\n", + "Эти метки могут быть отредактированы или удалены, а также можно создать\n", + "собственные метки.\n", + "7. Как прикрепить Assignees (ответственных) к Issue?\n", + "Ответ: справа на панели в разделе “Assignees” выберите “Редактировать”. Из\n", + "выпадающего списка нужно выбрать пользователя, которого хотите назначить в\n", + "качестве ответственного.\n", + "Работа с Issues\n", + "8. Как использовать Labels для классификации задач?\n", + "В каждом новом репозитории есть набор стандартных labels, их можно редактировать\n", + "или удалять, также можно создать новые labels. Теги должны соответствовать целям\n", + "Issue.\n", + "9. Для чего нужен Milestone, и как связать его с Issue?\n", + "Ответ: Milestones - это контрольные точки, способ группировки связанных задач,\n", + "направленных на достижение конкретного результата. Например, можно сгруппировать\n", + "Issues по дате.\n", + "Чтобы связать Milestone c Issue, нужно:\n", + "- перейти на страницу репозитория\n", + "- нажать на вкладку Issues и выбрать Issue, которое вы хотите связать\n", + "- выбрать наверху в меню Milestones\n", + "- в поле “Filter Milestones” начните вводить название существующего Milestone,\n", + "затем щёлкните по названию, чтобы связать его с элементом.\n", + "10. Как привязать Issue к пул-реквесту (Pull Request)?\n", + "Ответ: в описании или комментарии к Pull Request написать “Closes #11 или Fixed #11\n", + "(здесь 11 - номер Issue). Issue автоматически закроется при слиянии PR.\n", + "11. Как добавить комментарий к существующему Issue?\n", + "Ответ: внизу есть поле для комментариев.\n", + "Закрытие и завершение Issues\n", + "12. Как закрыть Issue вручную?\n", + "Ответ: открыть нужный Issue, прокрутить вниз и нажать кнопку “Close issue”.\n", + "13. Можно ли автоматически закрыть Issue с помощью сообщения в коммите или\n", + "пул-реквесте? Как это сделать?\n", + "Ответ: зайти в файл, сделать исправления, на верхней панели в правом углу выбрать\n", + "“Commit changes“. Заполнить заголовок и описание коммита и нажать на “Sign off and\n", + "commit changes“.\n", + "14. Как повторно открыть закрытое Issue, если работа ещё не завершена?\n", + "Ответ: перейти на страницу репозитория, нажать на вкладку Issues и в списке Closed\n", + "выбрать Issue, которое вы хотите открыть заново. Нажатием на заголовок перейдите в\n", + "Issue и внизу кликните по кнопке “Reopen issue”.\n", + "Фильтрация и поиск\n", + "15. Как найти все открытые или закрытые Issues в репозитории?\n", + "Ответ: перейти на страницу репозитория, нажать на вкладку Issues. Появится список с\n", + "двумя вкладками: Open и Closed.\n", + "16. Как использовать фильтры для поиска Issues по меткам, исполнителям или\n", + "другим критериям?\n", + "Ответ: рядом с вкладками Open и Closed есть вкладки “Author”, “Labels”, “Projects”,\n", + "“Milestones”.\n", + "17. Как сортировать Issues по приоритету, дате создания или другим параметрам?\n", + "Ответ: на верхней панели в правом верхнем углу нажать на три точки, появится\n", + "ниспадающее меню, выбрать Sort by …(Created on, last updated, Total comments, Best\n", + "match, Reactions)\n", + "Интеграции и автоматизация\n", + "18. Как настроить автоматические уведомления о новых или изменённых Issues?\n", + "Ответ: в профиле пользователя можно на вкладке Notifications настроить уведомления.\n", + "19. Что такое Projects в контексте GitHub, и как связать их с Issues?\n", + "Ответ: GitHub Projects - инструменты для создания Канбан-досок и таблиц,\n", + "позволяющие визуализировать рабочие процессы и отслеживать прогресс выполнения\n", + "задач.\n", + "Чтобы связать project c issue, нужно перейти в проект, в нижней строке любого столбца\n", + "или списка (рядом со знаком «+») нажмите знак плюса или просто поместить туда\n", + "курсор. Затем можно:\n", + "- вставить URL существующей Issue и нажать Enter.\n", + "- Найти существующую issue, набрав #, а затем номер или заголовок задачи, и\n", + "выбрать ее из результатов.\n", + "- создать новую issue, ввести заголовок и нажать Enter. Вы можете щелкнуть по\n", + "новому элементу, чтобы добавить дополнительные сведения (описание,\n", + "ответственные, метки).\n", + "20. Какие сторонние инструменты можно использовать для автоматизации работы с\n", + "Issues (например, боты, Webhooks)?\n", + "Ответ:\n", + "Zapier - сервис автоматизации рабочих действий, включает отслеживание новых\n", + "Issue/комментариев, автоматическое назначение задач, обновление статусов и\n", + "уведомления в мессенджерах (Slack, Discord) при пушах или релизах\n", + "Probot - платформа для создания GitHub ботов, которые могут автоматически\n", + "реагировать на действия в репозитории, например на создание Issues.\n", + "IFTTT (If This Then That) — это облачная платформа и приложение для\n", + "автоматизации взаимодействия между различными веб-сервисами и\n", + "приложениями, включая GitHub.\n", + "Webhooks - встроенная функция GitHub, которая позволяет отправлять HTTP\n", + "POST запросы на указанный URL при определённых событиях (например,\n", + "создание или изменение Issues).\n", + "21.\n", + "Коллаборация\n", + "21. Как упомянуть другого пользователя в комментарии к Issue?\n", + "Ответ: нужно использовать символ @, после которого вводится имя пользователя,\n", + "например @svetlana-s88. Упомянутый пользователь получит уведомление о том, что\n", + "его упомянули в комментарии.\n", + "22. Как запросить дополнительные данные или уточнения у автора Issue?\n", + "Ответ: все вопросы можно задать в комментарии к Issue.\n", + "23. Что делать, если Issue неактуально или его нужно объединить с другим?\n", + "Ответ: если Issue неактуально, его можно закрыть с помощью кнопки Close issue,\n", + "написав при этом комментарий об неактуальности.\n", + "Для объединения Issue с другим можно использовать метку “duplicate”. В комментарии\n", + "к этому Issue нужно вставить ссылку на основной Issue, затем этот Issue закрыть.\n", + "Практические аспекты\n", + "24. Как использовать шаблоны для создания Issues?\n", + "Ответ: В репозитории нужно создать папку .github/ISSUE_TEMPLATE. В этой папке\n", + "нужно создать файлы формата .mb для каждого шаблона, например, bug_report.mb,\n", + "feature_request.mb. В каждом файле описать структуру шаблона, включая заголовки и\n", + "инструкцию по заполнению.\n", + "25. Что такое Linked Issues, и как создать связь между задачами?\n", + "Ответ: Чтобы создать связь между задачами, нужно: \n", + "- Открыть Issue или пул-реквест,\n", + "который хотим связать с другим.\n", + "- На правой боковой панели найти раздел \"Linked\n", + "issues\". \n", + "- Нажать \"Link an issue\" и выбрать Issue из списка или ввести его номер. \n", + "- Выбрать тип связи, например, \"blocks\" (блокирует), \"is blocked by\" (заблокирован) или\n", + "\"relates to\" (связан с).\n", + "- Нажать \"Link\" для создания связи.\n", + "26. Какие метрики (например, время выполнения) можно отслеживать с помощью\n", + "Issues?\n", + "Ответ:\n", + "- Time to Close: Время, прошедшее с момента создания Issue до его закрытия.\n", + "- Количество комментариев\n", + "- Количество открытых и закрытых Issues\n", + "- Среднее время ответа: Время, которое проходит между созданием Issue и первым\n", + "комментарием или ответом от команды.\n", + "- Количество переоткрытий: Сколько раз Issue было закрыто и затем повторно открыто,\n", + "что может указывать на сложность задачи или недостаток информации.\n", + "- Распределение по меткам: Анализ количества Issues по разным меткам (например,\n", + "баги, улучшения) для понимания основных проблем в проекте.\n", + "27. Какие best practices рекомендуются при работе с Issues в команде?\n", + "Ответ:\n", + "- закрывать устаревшие Issue и дубликаты;\n", + "- ссылаться на связанные Pull Requests или коммиты." + ] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From ed19d6b44b1285728246b6a001ded9f3a49251ca Mon Sep 17 00:00:00 2001 From: Svetlana Sabitova Date: Mon, 2 Feb 2026 23:22:17 +0500 Subject: [PATCH 8/8] [TASK] Issues # 2 (https://github.com/SENATOROVAI/intro-cs/issues/2) Closes https://github.com/SENATOROVAI/intro-cs/issues/2 --- python/issues.ipynb | 190 ++++++++++++++++++++++++++++++++++++++++++++ python/issues.py | 164 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 354 insertions(+) create mode 100644 python/issues.ipynb create mode 100644 python/issues.py diff --git a/python/issues.ipynb b/python/issues.ipynb new file mode 100644 index 00000000..3c86586c --- /dev/null +++ b/python/issues.ipynb @@ -0,0 +1,190 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "719c7baf", + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"Issues Task 2.\"\"\"" + ] + }, + { + "cell_type": "markdown", + "id": "7af62bfb", + "metadata": {}, + "source": [ + "[TASK] issues #2\n", + "Общие вопросы\n", + "1. Что такое Issues на GitHub и для чего они используются?\n", + "Ответ: Issues — это встроенная на GitHub система учёта задач, багов и предложений,\n", + "позволяющая как разработчикам, так и пользователям сообщать о проблемах,\n", + "предлагать улучшения и обсуждать различные аспекты проекта.\n", + "2. Чем Issues отличаются от других инструментов управления задачами?\n", + "Ответ: Issues связаны непосредственно с репозиторием, автоматически связываются с\n", + "коммитами и пулл-реквестами, имеют встроенную систему меток и milestone’ов, и\n", + "доступны всем участникам репозитория.\n", + "3. Какие основные компоненты (поля) есть у каждого Issue?\n", + "Ответ: Title (заголовок) и Description(описание), теги(Labels), исполнителя (Assignees),\n", + "Milestone, связанные Pull Requests, комментарии, статус, дата создания и последнего\n", + "обновления.\n", + "Создание Issues\n", + "4. Как создать новое Issue в репозитории?\n", + "Ответ: чтобы создать новый Issue, нужно зайти в репозиторий. Допустим, мы нашли\n", + "файл с проблемным кодом. Выделяем строки проблемной кода в файле, копируем\n", + "permalink. Затем нужно открыть вкладку “Issues” нажать зеленую кнопку “New Issue”.\n", + "Далее заполняем заголовок(Title) и описание (Description), при необходимости можно\n", + "использовать шаблоны, затем нажимаем на кнопку «Submit new issue».\n", + "5. Какие данные рекомендуется указывать в описании Issue для лучшего\n", + "понимания задачи?\n", + "Ответ: содержание задачи. Например, файл и строки кода, которые нужно\n", + "прокомментировать.\n", + "6. Какие теги (labels) можно добавить к Issue? Какие из них стандартные?\n", + "Ответ: по умолчанию, GitHub предлагает следующие метки:\n", + "bug - что-то не работает\n", + "documentation - улучшение или добавление документации\n", + "duplicate - указывает на то, что такой Issue уже существует.\n", + "enhancement - указывает на новые запросы функций\n", + "good first Issue - для тех, кто создаёт Issue впервые\n", + "help wanted - указывает на то, что нужна помощь по какому-либо вопросу или запросу\n", + "на слияние\n", + "invalid - указывает на неактуальность\n", + "question - указывает на необходимость получения информации\n", + "wontfix - указывает на то, что работа над проблемой продолжаться не будет.\n", + "Эти метки могут быть отредактированы или удалены, а также можно создать\n", + "собственные метки.\n", + "7. Как прикрепить Assignees (ответственных) к Issue?\n", + "Ответ: справа на панели в разделе “Assignees” выберите “Редактировать”. Из\n", + "выпадающего списка нужно выбрать пользователя, которого хотите назначить в\n", + "качестве ответственного.\n", + "Работа с Issues\n", + "8. Как использовать Labels для классификации задач?\n", + "В каждом новом репозитории есть набор стандартных labels, их можно редактировать\n", + "или удалять, также можно создать новые labels. Теги должны соответствовать целям\n", + "Issue.\n", + "9. Для чего нужен Milestone, и как связать его с Issue?\n", + "Ответ: Milestones - это контрольные точки, способ группировки связанных задач,\n", + "направленных на достижение конкретного результата. Например, можно сгруппировать\n", + "Issues по дате.\n", + "Чтобы связать Milestone c Issue, нужно:\n", + "- перейти на страницу репозитория\n", + "- нажать на вкладку Issues и выбрать Issue, которое вы хотите связать\n", + "- выбрать наверху в меню Milestones\n", + "- в поле “Filter Milestones” начните вводить название существующего Milestone,\n", + "затем щёлкните по названию, чтобы связать его с элементом.\n", + "10. Как привязать Issue к пул-реквесту (Pull Request)?\n", + "Ответ: в описании или комментарии к Pull Request написать “Closes #11 или Fixed #11\n", + "(здесь 11 - номер Issue). Issue автоматически закроется при слиянии PR.\n", + "11. Как добавить комментарий к существующему Issue?\n", + "Ответ: внизу есть поле для комментариев.\n", + "Закрытие и завершение Issues\n", + "12. Как закрыть Issue вручную?\n", + "Ответ: открыть нужный Issue, прокрутить вниз и нажать кнопку “Close issue”.\n", + "13. Можно ли автоматически закрыть Issue с помощью сообщения в коммите или\n", + "пул-реквесте? Как это сделать?\n", + "Ответ: зайти в файл, сделать исправления, на верхней панели в правом углу выбрать\n", + "“Commit changes“. Заполнить заголовок и описание коммита и нажать на “Sign off and\n", + "commit changes“.\n", + "14. Как повторно открыть закрытое Issue, если работа ещё не завершена?\n", + "Ответ: перейти на страницу репозитория, нажать на вкладку Issues и в списке Closed\n", + "выбрать Issue, которое вы хотите открыть заново. Нажатием на заголовок перейдите в\n", + "Issue и внизу кликните по кнопке “Reopen issue”.\n", + "Фильтрация и поиск\n", + "15. Как найти все открытые или закрытые Issues в репозитории?\n", + "Ответ: перейти на страницу репозитория, нажать на вкладку Issues. Появится список с\n", + "двумя вкладками: Open и Closed.\n", + "16. Как использовать фильтры для поиска Issues по меткам, исполнителям или\n", + "другим критериям?\n", + "Ответ: рядом с вкладками Open и Closed есть вкладки “Author”, “Labels”, “Projects”,\n", + "“Milestones”.\n", + "17. Как сортировать Issues по приоритету, дате создания или другим параметрам?\n", + "Ответ: на верхней панели в правом верхнем углу нажать на три точки, появится\n", + "ниспадающее меню, выбрать Sort by …(Created on, last updated, Total comments, Best\n", + "match, Reactions)\n", + "Интеграции и автоматизация\n", + "18. Как настроить автоматические уведомления о новых или изменённых Issues?\n", + "Ответ: в профиле пользователя можно на вкладке Notifications настроить уведомления.\n", + "19. Что такое Projects в контексте GitHub, и как связать их с Issues?\n", + "Ответ: GitHub Projects - инструменты для создания Канбан-досок и таблиц,\n", + "позволяющие визуализировать рабочие процессы и отслеживать прогресс выполнения\n", + "задач.\n", + "Чтобы связать project c issue, нужно перейти в проект, в нижней строке любого столбца\n", + "или списка (рядом со знаком «+») нажмите знак плюса или просто поместить туда\n", + "курсор. Затем можно:\n", + "- вставить URL существующей Issue и нажать Enter.\n", + "- Найти существующую issue, набрав #, а затем номер или заголовок задачи, и\n", + "выбрать ее из результатов.\n", + "- создать новую issue, ввести заголовок и нажать Enter. Вы можете щелкнуть по\n", + "новому элементу, чтобы добавить дополнительные сведения (описание,\n", + "ответственные, метки).\n", + "20. Какие сторонние инструменты можно использовать для автоматизации работы с\n", + "Issues (например, боты, Webhooks)?\n", + "Ответ:\n", + "Zapier - сервис автоматизации рабочих действий, включает отслеживание новых\n", + "Issue/комментариев, автоматическое назначение задач, обновление статусов и\n", + "уведомления в мессенджерах (Slack, Discord) при пушах или релизах\n", + "Probot - платформа для создания GitHub ботов, которые могут автоматически\n", + "реагировать на действия в репозитории, например на создание Issues.\n", + "IFTTT (If This Then That) — это облачная платформа и приложение для\n", + "автоматизации взаимодействия между различными веб-сервисами и\n", + "приложениями, включая GitHub.\n", + "Webhooks - встроенная функция GitHub, которая позволяет отправлять HTTP\n", + "POST запросы на указанный URL при определённых событиях (например,\n", + "создание или изменение Issues).\n", + "21.\n", + "Коллаборация\n", + "21. Как упомянуть другого пользователя в комментарии к Issue?\n", + "Ответ: нужно использовать символ @, после которого вводится имя пользователя,\n", + "например @svetlana-s88. Упомянутый пользователь получит уведомление о том, что\n", + "его упомянули в комментарии.\n", + "22. Как запросить дополнительные данные или уточнения у автора Issue?\n", + "Ответ: все вопросы можно задать в комментарии к Issue.\n", + "23. Что делать, если Issue неактуально или его нужно объединить с другим?\n", + "Ответ: если Issue неактуально, его можно закрыть с помощью кнопки Close issue,\n", + "написав при этом комментарий об неактуальности.\n", + "Для объединения Issue с другим можно использовать метку “duplicate”. В комментарии\n", + "к этому Issue нужно вставить ссылку на основной Issue, затем этот Issue закрыть.\n", + "Практические аспекты\n", + "24. Как использовать шаблоны для создания Issues?\n", + "Ответ: В репозитории нужно создать папку .github/ISSUE_TEMPLATE. В этой папке\n", + "нужно создать файлы формата .mb для каждого шаблона, например, bug_report.mb,\n", + "feature_request.mb. В каждом файле описать структуру шаблона, включая заголовки и\n", + "инструкцию по заполнению.\n", + "25. Что такое Linked Issues, и как создать связь между задачами?\n", + "Ответ: Чтобы создать связь между задачами, нужно: \n", + "- Открыть Issue или пул-реквест,\n", + "который хотим связать с другим.\n", + "- На правой боковой панели найти раздел \"Linked\n", + "issues\". \n", + "- Нажать \"Link an issue\" и выбрать Issue из списка или ввести его номер. \n", + "- Выбрать тип связи, например, \"blocks\" (блокирует), \"is blocked by\" (заблокирован) или\n", + "\"relates to\" (связан с).\n", + "- Нажать \"Link\" для создания связи.\n", + "26. Какие метрики (например, время выполнения) можно отслеживать с помощью\n", + "Issues?\n", + "Ответ:\n", + "- Time to Close: Время, прошедшее с момента создания Issue до его закрытия.\n", + "- Количество комментариев\n", + "- Количество открытых и закрытых Issues\n", + "- Среднее время ответа: Время, которое проходит между созданием Issue и первым\n", + "комментарием или ответом от команды.\n", + "- Количество переоткрытий: Сколько раз Issue было закрыто и затем повторно открыто,\n", + "что может указывать на сложность задачи или недостаток информации.\n", + "- Распределение по меткам: Анализ количества Issues по разным меткам (например,\n", + "баги, улучшения) для понимания основных проблем в проекте.\n", + "27. Какие best practices рекомендуются при работе с Issues в команде?\n", + "Ответ:\n", + "- закрывать устаревшие Issue и дубликаты;\n", + "- ссылаться на связанные Pull Requests или коммиты." + ] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/python/issues.py b/python/issues.py new file mode 100644 index 00000000..bc8dba50 --- /dev/null +++ b/python/issues.py @@ -0,0 +1,164 @@ +"""Issues Task 2.""" + +# [TASK] issues #2 +# Общие вопросы +# 1. Что такое Issues на GitHub и для чего они используются? +# Ответ: Issues — это встроенная на GitHub система учёта задач, багов и предложений, +# позволяющая как разработчикам, так и пользователям сообщать о проблемах, +# предлагать улучшения и обсуждать различные аспекты проекта. +# 2. Чем Issues отличаются от других инструментов управления задачами? +# Ответ: Issues связаны непосредственно с репозиторием, автоматически связываются с +# коммитами и пулл-реквестами, имеют встроенную систему меток и milestone’ов, и +# доступны всем участникам репозитория. +# 3. Какие основные компоненты (поля) есть у каждого Issue? +# Ответ: Title (заголовок) и Description(описание), теги(Labels), исполнителя (Assignees), +# Milestone, связанные Pull Requests, комментарии, статус, дата создания и последнего +# обновления. +# Создание Issues +# 4. Как создать новое Issue в репозитории? +# Ответ: чтобы создать новый Issue, нужно зайти в репозиторий. Допустим, мы нашли +# файл с проблемным кодом. Выделяем строки проблемной кода в файле, копируем +# permalink. Затем нужно открыть вкладку “Issues” нажать зеленую кнопку “New Issue”. +# Далее заполняем заголовок(Title) и описание (Description), при необходимости можно +# использовать шаблоны, затем нажимаем на кнопку «Submit new issue». +# 5. Какие данные рекомендуется указывать в описании Issue для лучшего +# понимания задачи? +# Ответ: содержание задачи. Например, файл и строки кода, которые нужно +# прокомментировать. +# 6. Какие теги (labels) можно добавить к Issue? Какие из них стандартные? +# Ответ: по умолчанию, GitHub предлагает следующие метки: +# bug - что-то не работает +# documentation - улучшение или добавление документации +# duplicate - указывает на то, что такой Issue уже существует. +# enhancement - указывает на новые запросы функций +# good first Issue - для тех, кто создаёт Issue впервые +# help wanted - указывает на то, что нужна помощь по какому-либо вопросу или запросу +# на слияние +# invalid - указывает на неактуальность +# question - указывает на необходимость получения информации +# wontfix - указывает на то, что работа над проблемой продолжаться не будет. +# Эти метки могут быть отредактированы или удалены, а также можно создать +# собственные метки. +# 7. Как прикрепить Assignees (ответственных) к Issue? +# Ответ: справа на панели в разделе “Assignees” выберите “Редактировать”. Из +# выпадающего списка нужно выбрать пользователя, которого хотите назначить в +# качестве ответственного. +# Работа с Issues +# 8. Как использовать Labels для классификации задач? +# В каждом новом репозитории есть набор стандартных labels, их можно редактировать +# или удалять, также можно создать новые labels. Теги должны соответствовать целям +# Issue. +# 9. Для чего нужен Milestone, и как связать его с Issue? +# Ответ: Milestones - это контрольные точки, способ группировки связанных задач, +# направленных на достижение конкретного результата. Например, можно сгруппировать +# Issues по дате. +# Чтобы связать Milestone c Issue, нужно: +# - перейти на страницу репозитория +# - нажать на вкладку Issues и выбрать Issue, которое вы хотите связать +# - выбрать наверху в меню Milestones +# - в поле “Filter Milestones” начните вводить название существующего Milestone, +# затем щёлкните по названию, чтобы связать его с элементом. +# 10. Как привязать Issue к пул-реквесту (Pull Request)? +# Ответ: в описании или комментарии к Pull Request написать “Closes #11 или Fixed #11 +# (здесь 11 - номер Issue). Issue автоматически закроется при слиянии PR. +# 11. Как добавить комментарий к существующему Issue? +# Ответ: внизу есть поле для комментариев. +# Закрытие и завершение Issues +# 12. Как закрыть Issue вручную? +# Ответ: открыть нужный Issue, прокрутить вниз и нажать кнопку “Close issue”. +# 13. Можно ли автоматически закрыть Issue с помощью сообщения в коммите или +# пул-реквесте? Как это сделать? +# Ответ: зайти в файл, сделать исправления, на верхней панели в правом углу выбрать +# “Commit changes“. Заполнить заголовок и описание коммита и нажать на “Sign off and +# commit changes“. +# 14. Как повторно открыть закрытое Issue, если работа ещё не завершена? +# Ответ: перейти на страницу репозитория, нажать на вкладку Issues и в списке Closed +# выбрать Issue, которое вы хотите открыть заново. Нажатием на заголовок перейдите в +# Issue и внизу кликните по кнопке “Reopen issue”. +# Фильтрация и поиск +# 15. Как найти все открытые или закрытые Issues в репозитории? +# Ответ: перейти на страницу репозитория, нажать на вкладку Issues. Появится список с +# двумя вкладками: Open и Closed. +# 16. Как использовать фильтры для поиска Issues по меткам, исполнителям или +# другим критериям? +# Ответ: рядом с вкладками Open и Closed есть вкладки “Author”, “Labels”, “Projects”, +# “Milestones”. +# 17. Как сортировать Issues по приоритету, дате создания или другим параметрам? +# Ответ: на верхней панели в правом верхнем углу нажать на три точки, появится +# ниспадающее меню, выбрать Sort by …(Created on, last updated, Total comments, Best +# match, Reactions) +# Интеграции и автоматизация +# 18. Как настроить автоматические уведомления о новых или изменённых Issues? +# Ответ: в профиле пользователя можно на вкладке Notifications настроить уведомления. +# 19. Что такое Projects в контексте GitHub, и как связать их с Issues? +# Ответ: GitHub Projects - инструменты для создания Канбан-досок и таблиц, +# позволяющие визуализировать рабочие процессы и отслеживать прогресс выполнения +# задач. +# Чтобы связать project c issue, нужно перейти в проект, в нижней строке любого столбца +# или списка (рядом со знаком «+») нажмите знак плюса или просто поместить туда +# курсор. Затем можно: +# - вставить URL существующей Issue и нажать Enter. +# - Найти существующую issue, набрав #, а затем номер или заголовок задачи, и +# выбрать ее из результатов. +# - создать новую issue, ввести заголовок и нажать Enter. Вы можете щелкнуть по +# новому элементу, чтобы добавить дополнительные сведения (описание, +# ответственные, метки). +# 20. Какие сторонние инструменты можно использовать для автоматизации работы с +# Issues (например, боты, Webhooks)? +# Ответ: +# Zapier - сервис автоматизации рабочих действий, включает отслеживание новых +# Issue/комментариев, автоматическое назначение задач, обновление статусов и +# уведомления в мессенджерах (Slack, Discord) при пушах или релизах +# Probot - платформа для создания GitHub ботов, которые могут автоматически +# реагировать на действия в репозитории, например на создание Issues. +# IFTTT (If This Then That) — это облачная платформа и приложение для +# автоматизации взаимодействия между различными веб-сервисами и +# приложениями, включая GitHub. +# Webhooks - встроенная функция GitHub, которая позволяет отправлять HTTP +# POST запросы на указанный URL при определённых событиях (например, +# создание или изменение Issues). +# 21. +# Коллаборация +# 21. Как упомянуть другого пользователя в комментарии к Issue? +# Ответ: нужно использовать символ @, после которого вводится имя пользователя, +# например @svetlana-s88. Упомянутый пользователь получит уведомление о том, что +# его упомянули в комментарии. +# 22. Как запросить дополнительные данные или уточнения у автора Issue? +# Ответ: все вопросы можно задать в комментарии к Issue. +# 23. Что делать, если Issue неактуально или его нужно объединить с другим? +# Ответ: если Issue неактуально, его можно закрыть с помощью кнопки Close issue, +# написав при этом комментарий об неактуальности. +# Для объединения Issue с другим можно использовать метку “duplicate”. В комментарии +# к этому Issue нужно вставить ссылку на основной Issue, затем этот Issue закрыть. +# Практические аспекты +# 24. Как использовать шаблоны для создания Issues? +# Ответ: В репозитории нужно создать папку .github/ISSUE_TEMPLATE. В этой папке +# нужно создать файлы формата .mb для каждого шаблона, например, bug_report.mb, +# feature_request.mb. В каждом файле описать структуру шаблона, включая заголовки и +# инструкцию по заполнению. +# 25. Что такое Linked Issues, и как создать связь между задачами? +# Ответ: Чтобы создать связь между задачами, нужно: +# - Открыть Issue или пул-реквест, +# который хотим связать с другим. +# - На правой боковой панели найти раздел "Linked +# issues". +# - Нажать "Link an issue" и выбрать Issue из списка или ввести его номер. +# - Выбрать тип связи, например, "blocks" (блокирует), "is blocked by" (заблокирован) или +# "relates to" (связан с). +# - Нажать "Link" для создания связи. +# 26. Какие метрики (например, время выполнения) можно отслеживать с помощью +# Issues? +# Ответ: +# - Time to Close: Время, прошедшее с момента создания Issue до его закрытия. +# - Количество комментариев +# - Количество открытых и закрытых Issues +# - Среднее время ответа: Время, которое проходит между созданием Issue и первым +# комментарием или ответом от команды. +# - Количество переоткрытий: Сколько раз Issue было закрыто и затем повторно открыто, +# что может указывать на сложность задачи или недостаток информации. +# - Распределение по меткам: Анализ количества Issues по разным меткам (например, +# баги, улучшения) для понимания основных проблем в проекте. +# 27. Какие best practices рекомендуются при работе с Issues в команде? +# Ответ: +# - закрывать устаревшие Issue и дубликаты; +# - ссылаться на связанные Pull Requests или коммиты.