diff --git a/.gitignore b/.gitignore index 0fa2f447..7824b879 100644 --- a/.gitignore +++ b/.gitignore @@ -333,3 +333,5 @@ coverage/ /Math/calculus/theory /Math/school_theory +.pre-commit-cache/ +projects/vehicle-collection-cli/ diff --git a/log.ipynb b/log.ipynb new file mode 100644 index 00000000..5942c104 --- /dev/null +++ b/log.ipynb @@ -0,0 +1,65 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 9, + "id": "6f8683c4", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'Логирование уроков.'" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\"\"\"Логирование уроков.\"\"\"" + ] + }, + { + "cell_type": "markdown", + "id": "905703b2", + "metadata": {}, + "source": [ + "26/2/2026\n", + "'INTRO'\n", + "1 Скачал репозитарий на ПК\n", + "2 Сделал форк и поставил звезду" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "79d03840", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "myenv", + "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.12.11" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/log.py b/log.py new file mode 100644 index 00000000..8eb79e38 --- /dev/null +++ b/log.py @@ -0,0 +1,6 @@ +"""Логирование уроков.""" + +# 26/2/2026 +# 'INTRO' +# 1 Скачал репозитарий на ПК +# 2 Сделал форк и поставил звезду diff --git a/python/commits.ipynb b/python/commits.ipynb new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/python/commits.ipynb @@ -0,0 +1 @@ + diff --git a/python/cpython.ipynb b/python/cpython.ipynb new file mode 100644 index 00000000..0a818a4a --- /dev/null +++ b/python/cpython.ipynb @@ -0,0 +1,133 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "49f50c78", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'Выполнение заданий по Cpython.'" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\"\"\"Выполнение заданий по Cpython#4.\"\"\"" + ] + }, + { + "cell_type": "markdown", + "id": "171e26a4", + "metadata": {}, + "source": [ + "1. Что такое CPython и чем он отличается от Python?\n", + "Ответ: Cpython это официальная версия на писанная на С, отличается тем что выполняет байт-код и имеет интерпритатор.\n", + "3. Сколько существует реализаций Python, и какая из них самая популярная?\n", + "Ответ: существует 6 реализаций, самая популярная Cpython.\n", + "4. На каком языке написан CPython?\n", + "Ответ: на Python и C.\n", + "5. (опционально) Кто создал CPython?\n", + "Ответ: Гвидо\n", + "6. Почему Python считается быстрым, несмотря на то, что это интерпретируемый язык?\n", + "Ответ: потому что ядро написано на языке С\n", + "7. Напишите путь к Интерпретатору CPython на вашем компьютере\n", + "Ответ:\"C:\\Users\\user\\AppData\\Local\\Programs\\Python\\Python312\\python.exe\"\n", + "8. Что содержится в папке include в CPython?\n", + "Ответ: файлы Python\n", + "9. Где можно найти исходный код CPython дайте ссылку на репозиторий гитхаб\n", + "Ответ: https://github.com/python/cpython\n", + "11. Какая команда используется для запуска файла с помощью CPython?\n", + "Ответ: run (print)\n", + "12. Можно ли запускать текстовые файлы через интерпретатор Python? Почему?\n", + "Ответ: можно. Для итерпретатора нет разницы\n", + "13. Как указать путь к интерпретатору и файлу для выполнения кода?\n", + "Ответ: напимать путь интерпретатора и через пробел добавить путь к файлу нажать ввод.\n", + "14. Чем PyPy отличается от CPython?\n", + "Ответ: PyPy отличается тем? что работает в 10 раз быстрее чем Cpython\n", + "15. Почему PyPy не может использоваться для всех проектов на Python?\n", + "Ответ: он относительно новый и мы не можем использовать его везде, только точечно.\n", + "16. Где можно скачать PyPy?\n", + "Ответ: на сайте PyPy.org\n", + "17. Как установить PyPy после скачивания?\n", + "Ответ: запустить файл с расширением .exe\n", + "18. Как запустить файл с помощью PyPy?\n", + "Ответ: нужно копировать руть интерпретатора и в терминале через пробел указать путь к исполняемому файлу нажать ввод.\n", + "19. Почему PyPy выполняет код быстрее, чем CPython?\n", + "Ответ: \n", + "CPython:\n", + "Работает как интерпретатор\n", + "Читает исходный код построчно и сразу выполняет его\n", + "Каждый раз при запуске программы заново переводит код в байт-код и выполняет его\n", + "Не запоминает, что делала программа в прошлый раз\n", + "PyPy:\n", + "Использует JIT-компилятор\n", + "Сначала наблюдает за работой программы\n", + "Определяет самые \"горячие\" участки кода (которые выполняются чаще всего)\n", + "Компилирует эти участки в машинный код прямо во время выполнения\n", + "При повторном выполнении использует уже скомпилированный код\n", + "\n", + "Задание 1: Поиск и установка CPython\n", + "- C:\\Users\\user>python --version\n", + "Python 3.11.7\n", + "\n", + "Задание 2: Исследование структуры CPython\n", + "- C:\\Users\\user\\AppData\\Local\\Programs\\Python\\Python312\\python.exe\n", + "- все файлы на C\n", + "\n", + "Задание 3: Запуск файла с помощью CPython\n", + "- C:\\Users\\user>C:\\Users\\user\\AppData\\Local\\Programs\\Python\\Python312\\python.exe C:\\Users\\user\\AppData\\Local\\Programs\\Python\\Python312\\example.txt\n", + "Привет от CPython!\n", + "- C:\\Users\\user>C:\\Users\\user\\AppData\\Local\\Programs\\Python\\Python312\\python.exe C:\\Users\\user\\AppData\\Local\\Programs\\Python\\Python312\\example.py\n", + "Привет от CPython!\n", + "\n", + "Задание 4: Установка и использование PyPy\n", + "- C:\\Users\\user>C:\\pypy3.11-v7.3.21-win64\\python3.11.exe C:\\Users\\user\\AppData\\Local\\Programs\\Python\\Python312\\example_pypy.py\n", + "╨Я╤А╨╕╨▓╨╡╤В ╨╛╤В ╨┐╨╕╨┐╨╕! - проблема с кодировкой (пытался решить но не получилось)\n", + "\n", + "Задание 5: Сравнение производительности CPython и PyPy\n", + "\n", + "CPython\n", + "1/C:\\Users\\user>C:\\cpython-3.12.13\\PCbuild\\amd64\\python.exe C:\\MyProjectsPy\\performance_test.py\n", + "Result: 49999995000000\n", + "Execution time: 0.8902642726898193 seconds\n", + "\n", + "PyPy\n", + "C:\\Users\\user>C:\\pypy3.11-v7.3.21-win64\\pypy3.11.exe C:\\MyProjectsPy\\performance_test.py\n", + "Result: 49999995000000\n", + "Execution time: 0.010732650756835938 seconds\n", + "\n", + "Разница по скорости в 83 раза! (однако...)\n", + "\n", + "\n", + "\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "myenv", + "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.12.11" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/python/cpython.py b/python/cpython.py new file mode 100644 index 00000000..d2fe8a26 --- /dev/null +++ b/python/cpython.py @@ -0,0 +1,83 @@ +"""Выполнение заданий по Cpython#4.""" + +# 1. Что такое CPython и чем он отличается от Python? +# Ответ: Cpython это официальная версия на писанная на С, отличается тем что выполняет байт-код и имеет интерпритатор. +# 3. Сколько существует реализаций Python, и какая из них самая популярная? +# Ответ: существует 6 реализаций, самая популярная Cpython. +# 4. На каком языке написан CPython? +# Ответ: на Python и C. +# 5. (опционально) Кто создал CPython? +# Ответ: Гвидо +# 6. Почему Python считается быстрым, несмотря на то, что это интерпретируемый язык? +# Ответ: потому что ядро написано на языке С +# 7. Напишите путь к Интерпретатору CPython на вашем компьютере +# Ответ:"C:\Users\user\AppData\Local\Programs\Python\Python312\python.exe" +# 8. Что содержится в папке include в CPython? +# Ответ: файлы Python +# 9. Где можно найти исходный код CPython дайте ссылку на репозиторий гитхаб +# Ответ: https://github.com/python/cpython +# 11. Какая команда используется для запуска файла с помощью CPython? +# Ответ: run (print) +# 12. Можно ли запускать текстовые файлы через интерпретатор Python? Почему? +# Ответ: можно. Для итерпретатора нет разницы +# 13. Как указать путь к интерпретатору и файлу для выполнения кода? +# Ответ: напимать путь интерпретатора и через пробел добавить путь к файлу нажать ввод. +# 14. Чем PyPy отличается от CPython? +# Ответ: PyPy отличается тем? что работает в 10 раз быстрее чем Cpython +# 15. Почему PyPy не может использоваться для всех проектов на Python? +# Ответ: он относительно новый и мы не можем использовать его везде, только точечно. +# 16. Где можно скачать PyPy? +# Ответ: на сайте PyPy.org +# 17. Как установить PyPy после скачивания? +# Ответ: запустить файл с расширением .exe +# 18. Как запустить файл с помощью PyPy? +# Ответ: нужно копировать руть интерпретатора и в терминале через пробел указать путь к исполняемому файлу нажать ввод. +# 19. Почему PyPy выполняет код быстрее, чем CPython? +# Ответ: +# CPython: +# Работает как интерпретатор +# Читает исходный код построчно и сразу выполняет его +# Каждый раз при запуске программы заново переводит код в байт-код и выполняет его +# Не запоминает, что делала программа в прошлый раз +# PyPy: +# Использует JIT-компилятор +# Сначала наблюдает за работой программы +# Определяет самые "горячие" участки кода (которые выполняются чаще всего) +# Компилирует эти участки в машинный код прямо во время выполнения +# При повторном выполнении использует уже скомпилированный код +# +# Задание 1: Поиск и установка CPython +# - C:\Users\user>python --version +# Python 3.11.7 +# +# Задание 2: Исследование структуры CPython +# - C:\Users\user\AppData\Local\Programs\Python\Python312\python.exe +# - все файлы на C +# +# Задание 3: Запуск файла с помощью CPython +# - C:\Users\user>C:\Users\user\AppData\Local\Programs\Python\Python312\python.exe C:\Users\user\AppData\Local\Programs\Python\Python312\example.txt +# Привет от CPython! +# - C:\Users\user>C:\Users\user\AppData\Local\Programs\Python\Python312\python.exe C:\Users\user\AppData\Local\Programs\Python\Python312\example.py +# Привет от CPython! +# +# Задание 4: Установка и использование PyPy +# - C:\Users\user>C:\pypy3.11-v7.3.21-win64\python3.11.exe C:\Users\user\AppData\Local\Programs\Python\Python312\example_pypy.py +# ╨Я╤А╨╕╨▓╨╡╤В ╨╛╤В ╨┐╨╕╨┐╨╕! - проблема с кодировкой (пытался решить но не получилось) +# +# Задание 5: Сравнение производительности CPython и PyPy +# +# CPython +# 1/C:\Users\user>C:\cpython-3.12.13\PCbuild\amd64\python.exe C:\MyProjectsPy\performance_test.py +# Result: 49999995000000 +# Execution time: 0.8902642726898193 seconds +# +# PyPy +# C:\Users\user>C:\pypy3.11-v7.3.21-win64\pypy3.11.exe C:\MyProjectsPy\performance_test.py +# Result: 49999995000000 +# Execution time: 0.010732650756835938 seconds +# +# Разница по скорости в 83 раза! (однако...) +# +# +# +# diff --git a/quiz.ipynb b/quiz.ipynb new file mode 100644 index 00000000..928667a6 --- /dev/null +++ b/quiz.ipynb @@ -0,0 +1,282 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "d00da225", + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"Practice notebook.\"\"\"\n" + ] + }, + { + "cell_type": "markdown", + "id": "9c54e71d", + "metadata": {}, + "source": [ + "Список вопросов к видео https://youtu.be/hW_7hodGxVU?si=tCEVs00xGt2q61eW (АЛГОРИТМ ПРИНЯТИЯ И ОТДАЧИ ДОМАШКИ):\n", + " \n", + "(По желанию) В ответе подробно всё опишите и обязательно нужно указывать тайм код из видео где я это сказал, по желанию, дополнительно прикладываем скриншот из видео.\n", + "Если вы знаете ответы на вопросы из Вашего опыта, то таймкоды из видео не надо указывать и т.д.\n", + "\n", + "1) Как понять, что домашка пришла?\n", + "Ответ: нужно зайти в группу homework, увидеть свой ник и \"прими пул\" \n", + "2) Как принять домашку?\n", + "Ответ: нужно зайти в Github Desktop и нажать кнопку Feth origin\n", + "3) Зачем нужна кнопка history и какие функции появляются при нажатии правой кнопки мыши на коммит?\n", + "Ответ: В этом разделе можно увидеть commit. При нажатии правой кнопки мыши появляется кнопка view on github (можно открыть на github)\n", + "3.1) Где брать ссылку на коммит? куда её отправлять? \n", + "Ответ: ссылку на commit берем с github и отправляем в чат review(запросы)\n", + "4) Что такое файл лога? \n", + "Ответ: это файл где видны все изменения \n", + "4.1) Когда нужно его пушить?\n", + "Ответ: когда заполнил после каждого задания\n", + "5) Что такое интерпретатор? \n", + "Ответ: интерпретатор это программа которая запускает код\n", + "6) Где можно выбрать интерпритатор?\n", + "Ответ: интерпретатор можно выбрать в интерфейсе IDE \n", + "7) Что такое модуль? \n", + "Ответ: это файлы .py или .ypynb\n", + "8) Как создать и отправить коммит?\n", + "Ответ: в кошке нужно внизу слева написать название и нажать commit to main\n", + "9) Как посмотреть что коммит точно отправлен и находится в github?\n", + " 1. Проверить локально, что всё запушено\n", + " В терминале в папке проекта: git status\n", + " Если видим строку типа: Your branch is up to date with 'origin/main'.\n", + " — значит локальная ветка синхронизирована с GitHub (ветка main уже запушена).\n", + " 2. Убедиться, что нужный коммит есть на удалённой ветке: git log -1\n", + " Скопировать hash последнего коммита (что‑то вроде abc1234), затем:\n", + " git log origin/main (или свою ветку: origin/my-branch)\n", + " Если этот hash есть в списке — коммит точно на GitHub.\n", + " 3. Проверить прямо в GitHub\n", + " Зайти на страницу репозитория.\n", + " Открыть вкладку Commits (или список коммитов рядом с веткой).\n", + " Найти свой последний коммит по: сообщению (commit message), времени,или по hash (первые 7 символов).\n", + " Если он там есть — значит коммит уже в GitHub.\n", + "10) Какая команда показывает что код не прошёл проверки на ошибки? \n", + "Ответ: pre-commit run --all-files\n", + "10.1) Напишите список линтеров которые используются для проверки кода и дайте их краткую характеристику.\n", + "Ответ: Pylint - Анализирует код на соответствие стандартам PEP 8, ищет ошибки, проверяет качество кода, выставляет оценку коду по 10-балльной шкале, очень строгий и настраиваемый, может находить проблемы в именовании переменных.\n", + " Pydocstyle - Проверяет наличие и правильность docstring (строк документации), следит за соответствием документации стандарту PEP 257, требует, чтобы у функций, классов и модулей были описания.\n", + " Flake8 - Объединяет несколько инструментов: PyFlakes (логические ошибки), pycodestyle (стиль кода), McCabe (сложность кода), быстрый, простой в использовании, только предупреждает о проблемах, но не исправляет их.\n", + " Mypy - Статический типизатор (type checker), проверяет соответствие типов данных объявленным аннотациям, помогает находить ошибки, связанные с передачей значений неверного типа.\n", + "11) Как узнать какой именно линтер не прошёл проверку?\n", + "Ответ: в терминале увидим секцию и какой линтер показывает ошибку и её код, после ввода pre-commit run --all-files\n", + "12) Линтер Pylint видит markdown?\n", + "Ответ: нет, он их игнорирует\n", + "13) Номер ячейки в терминале и номер ячейки в vs code может отличаться? в каком случае?\n", + "Ответ: может, если ячейки разного формата, например marcdown и python\n", + "14) Где посмотреть номер ячейки в vscode?\n", + "Ответ: в нижнем поле справа VS Code (Cell)\n", + "15) В каком формате ipynb отправляется в гитхаб? причём здесь JSON?\n", + "Ответ: ipynb в кошке отображается в формате JSON и в этом же формате он отправляется. В Github он хранит в формате JSON, но при открытии в WEB будет красивый читаемый файл\n", + "16) Где посмотреть в какой ячейке ошибка?\n", + "Ответ: в нижнем поле справа VS Code (Cell)\n", + "17) Как запустить терминал?\n", + "Ответ: можно открыть сочетанием ctrl + j и выбрать вкладку терминал\n", + "18) Что такое линтер?\n", + "Ответ: программа которая проверяет код на правильность\n", + "19) В какой сайт нужно вставлять код ошибки если ошибка связана с pylint?\n", + "Ответ: в поиск на офсайте Pylint\n", + "20) Секция pydocstyle в большинстве случае автоматический закрывается после исправления ошибок в каком линтере?\n", + "Ответ: Pylint\n", + "21) Что такое описание модуля? Оно должно отражать информацию о том что находится в модуле?\n", + "Ответ: Описание модуля это краткое название кода или содержания ячеек\n", + "21.1) С какой git команды начинается утро программиста?\n", + "Ответ: git pull — подтянуть свежие изменения команды.\n", + "22) После внесения изменений в файлах, кнопка open in vs code пропадает в кошке, как по другому открыть vs code из кошки?\n", + "Ответ: Нужно нажать в кошке правой кнопкой мышки на кнопку current repository и из выпадающего списка выбрать командуopen in vs code\n", + "23) Что такое stash? \n", + "Ответ: стэш означает что в одном файле работают несколько пользователей\n", + " Общее объяснение концепции.\n", + "23.1) Как сохранить стэш?\n", + " git командa: git stash\n", + " git stash save \"моё описание изменений\" \n", + " нужно зайти в stashed changed и нажать restore\n", + " Кнопка в vs code:\n", + " restore\n", + "23.2) Как восстановить стэш(подсказка: https://t.me/c/1937296927/3602/25747)?:\n", + " git команда(подсказка: https://t.me/c/1937296927/3602/19531)?:\n", + "Восстановить стэш\n", + "Вернуть и оставить стэш в списке:\n", + " git stash apply stash@{N}\n", + "(если N не указать – применится последний: git stash apply)\n", + "Вернуть и сразу удалить этот стэш:\n", + " git stash pop stash@{N}\n", + "(или просто git stash pop для последнего)\n", + "23.3) Различие между стэшем и коммитом. \n", + " Когда лучше сохранить изменения в стэше, а когда коммитить.\n", + " Ответ:Коммит\n", + " Постоянная точка в истории репозитория.\n", + " Уходит на GitHub при git push.\n", + " Должен иметь осмысленное сообщение и более‑менее законченные изменения.\n", + " Видят все, кто работает с репо.\n", + " Стэш (git stash)\n", + "\n", + " Временное локальное сохранение незакоммиченных изменений.\n", + " Не попадает в историю коммитов и на GitHub.\n", + " Удобен для “черновиков”, переключения задач, экспериментов.\n", + " Хранится только у тебя локально.\n", + " Когда стэш лучше:\n", + " Нужно быстро переключиться на другую ветку/задачу, а текущие правки ещё “сырые”.\n", + " Надо сделать git pull, но не хочешь сейчас разруливать конфликты.\n", + " Хочешь проверить, ломают ли код именно твои изменения (убрать → проверить → вернуть).\n", + " У тебя просто черновой эксперимент, который не готов попадать в историю.\n", + " Команда: git stash (или с описанием: git stash save \"черновик\").\n", + "\n", + " Когда коммит лучше:\n", + " Изменения:\n", + " логически закончены (фикс бага, маленькая фича, рефакторинг),\n", + " полезны тебе или другим в будущем.\n", + " Хочешь:\n", + " иметь понятную историю,\n", + " поделиться кодом через GitHub,\n", + " уметь вернуться к этому состоянию.\n", + " Команда: git commit -m \"осмысленное сообщение\" → потом git push.\n", + "23.4) Как просмотреть список сохраненных стэшей? \n", + " git команда (подсказка: https://t.me/c/1937296927/3602/19531):\n", + "Git‑команда:\n", + " git stash list\n", + "Она покажет все стэши вида:\n", + " stash@{0}: On branch-name: сообщение\n", + " stash@{1}: On other-branch: другое сообщение\n", + "23.5) Как удалить стэш? \n", + " Команды для удаления отдельных стэшей или всех сразу.\n", + " git команда (подсказка: https://t.me/c/1937296927/3602/19531):\n", + " Удалить один стэш\n", + " Удалить конкретный стэш по номеру:\n", + " git stash drop stash@{N}\n", + " пример:\n", + " git stash drop stash@{0}\n", + "Удалить последний (верхний) стэш:\n", + " git stash drop\n", + "Удалить все стэши сразу\n", + " git stash clear\n", + "23.6) Практические примеры использования стэша. \n", + " Краткие сценарии, где стэш помогает.\n", + "git stash — временно прячет текущие незакоммиченные изменения, чтобы рабочая директория стала “чистой”, а потом можно вернуть их назад.\n", + "\n", + "Краткие сценарии, когда стэш реально помогает\n", + "1. Срочно переключиться на другую задачу / ветку\n", + " Ты что‑то делаешь в feature-a, но приходит срочный баг в main.\n", + " git stash # спрятать текущие незавершённые изменения\n", + " git checkout main # перейти на основную ветку\n", + " (фиксишь баг, коммитишь, пушишь)\n", + " git checkout feature-a\n", + " git stash pop # вернуть свои изменения и продолжить\n", + "2. Нужно сделать git pull, но есть локальные правки\n", + " git pull ругается, что есть незакоммиченные изменения.\n", + " git stash # спрятать\n", + " git pull # обновить код\n", + " git stash pop # наложить свои правки поверх свежего кода\n", + "3. Проверить, “виноваты ли мои изменения” (быстрая диагностика бага)\n", + " Что‑то сломалось, не уверен — это мой код или уже было.\n", + " git stash # убрать мои изменения\n", + " (запустить тесты / приложение\n", + " если всё работает → баг в моих изменениях)\n", + " git stash pop\n", + "4. Перекинуть черновые правки в другую ветку\n", + " Начал менять код в main, понял, что надо было в новой ветке.\n", + " git stash\n", + " git checkout -b new-feature\n", + " git stash pop\n", + " теперь мои изменения в правильной ветке\n", + "5. Хочешь сохранить эксперимент, но не коммитить “мусор”\n", + " Сделал кучу пробных изменений, но не хочешь коммитить, зато потом, может, пригодится:\n", + " git stash save \"эксперимент с новой идеей\"\n", + " рабочая директория чистая, можно продолжать\n", + " git stash list # посмотреть все стэши\n", + " git stash pop # вернуть самый последний\n", + " git stash apply stash@{2} # вернуть конкретный стэш\n", + "24) Где посмотреть что есть конфликт в файлах? \n", + "Ответ: в кошке напротив названия файла будет стоять желтый треугольник\n", + "24.1) Когда он появляется?\n", + "Ответ: когда есть конфликт в файлах\n", + "25) Как решить конфликт в файлах?\n", + "Ответ: нужно выбрать что оставляем или оба сразу, можно вручную удалить маркеры и закоммитить\n", + "26) Напишите правильное утверждение\n", + "-Зелёное то что пришло с гитхаба и синее локальные изменения или синее то что пришло с гитхаба и зелёное это локальные изменения \n", + "Ответ: Зелёное то что пришло с гитхаба и синее локальные изменения\n", + "27) Если мы работаем в одном файле, можно ли принять pull после того как вы спрячете в стэш свои изменения?\n", + "Ответ: можно \n", + "27.1) Что может произойти когда stash восстановите после принятия pull?\n", + "Ответ: конфликт изменений, гит не понимает какую версию брать\n", + "28) Сколько способов решения конфликтов было показано в видео? Напишите ЧИСЛО и укажите их способы.\n", + "Ответ: 4\n", + " 1. Нажать кнопку accept current change и примется изменения с GiThub.\n", + " 2. Нажать кнопку accept incoming change и примется изменения локальные.\n", + " 3. Нажать кнопку accept both change, тогда примется оба изменения.\n", + " 4. Удалить вручную что не нужно и нажать кнопку resolve in merge editor\n", + "29) Что делает кнопка complete merge?\n", + "Ответ: принимает изменения после нажатия resolve in merge editor\n", + "30) В какой чат нужно писать если остались вопросы?\n", + "Ответ: https://t.me/c/1937296927/2415 (Helpme)\n", + "31) Что такое FORK? Зачем его делают? \n", + "Ответ: Это копия чужого репозитария уменя на аккаунте. FORK делают для того чтобы внести вклад в чужой проект, иметь свою ветку чужого проекта, можно эксперментировать не боясь сломать код, \n", + "32) Как скачать форкнутый репозиторий на локальный компьютер?\n", + "Ответ: \n", + " 1. Жмем кнопку fork на GitHub.\n", + " 2. Находим свой fork на GitHub - открываем свой профиль → Repositories.\n", + " находим нужный репозиторий (с подписью “forked from …”).\n", + " 3. Открываем его и жмём зелёную кнопку Code.\n", + " Копируем URL, например: https://github.com/ТВОЙ_ЛОГИН/ИМЯ_РЕПО.git\n", + " 4. Отккрываем терминал (powershell) и пишем:\n", + " cd C:\\MyProjectsPy # или другая папка, где хотим хранить проект\n", + " git clone https://github.com/ТВОЙ_ЛОГИН/ИМЯ_РЕПО.git\n", + " 5. После этого появится папка с названием проекта\n", + "33) С какой вероятностью ваши ошибки были уже решены? и кто их решил?\n", + "Ответ: большая, можно посмотреть issuise проекта\n", + "34) Как создать файл в vs code?\n", + "Ответ: нажать CTRL + ALT + Windows + N\n", + "35) Файл лога нужно заполнять в конце каждого урока?\n", + "Ответ: да.\n", + "==================\n", + "\n", + "Дополнительные вопросы:\n", + "1)Какая команда конвертирует файл в py из ipynb? \n", + "ответ: jupyter nbconvert --to python ваш_файл.ipynb (для jupiter)\n", + "2) Что такое пакетный менеджер? Вы пользуетесь пакетным менеджером conda или pip? Какой лучше использовать для дата сайнс?\n", + "Ответ: по сути это менеждер библиотек. Лучше использовать conda, если чего не хватает установить через pip\n", + "3) Почему расширение py лучше чем ipynb?\n", + "Ответ: .py лучше подходит для нормальной разработки, а .ipynb — для экспериментов и обучения.\n", + "4) Что такое pep8? \n", + "подсказка:https://peps.python.org/pep-0008/\n", + "Ответ: это документация на python\n", + "4.1) линтеры проверяют на соблюдение pep8?\n", + "Ответ: да\n", + "4.2) Какая нотация используется для создания переменных? \n", + "ответ на 85-95 страницы https://t.me/c/1937296927/1/16676\n", + "Ответ: Имя должно быть лаконичным, но информативным. Оно должно легко находиться\n", + "функцией поиска Ctrl-F\n", + "4.3) Может ли переменная состоять из одной буквы например андерскор \"_\" ?\n", + "Ответ: может\n", + "4.4) Зачем и где мы используем андерскор _ \n", + "Ответ: если явно не показываем переменную\n", + "4.5) По PEP8 допустима переменная в одну букву?\n", + "ответ на 85-95 страницы https://t.me/c/1937296927/1/16676\n", + "Ответ: PEP 8 разрешает однобуквенные имена в коротких, очевидных контекстах.\n" + ] + }, + { + "cell_type": "markdown", + "id": "58d27c54", + "metadata": {}, + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "myenv", + "language": "python", + "name": "python3" + }, + "language_info": { + "name": "python", + "version": "3.12.11" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} + diff --git a/quiz.py b/quiz.py new file mode 100644 index 00000000..6d81b226 --- /dev/null +++ b/quiz.py @@ -0,0 +1,246 @@ +"""Practice notebook.""" + +# Список вопросов к видео https://youtu.be/hW_7hodGxVU?si=tCEVs00xGt2q61eW (АЛГОРИТМ ПРИНЯТИЯ И ОТДАЧИ ДОМАШКИ): +# +# (По желанию) В ответе подробно всё опишите и обязательно нужно указывать тайм код из видео где я это сказал, по желанию, дополнительно прикладываем скриншот из видео. +# Если вы знаете ответы на вопросы из Вашего опыта, то таймкоды из видео не надо указывать и т.д. +# +# 1) Как понять, что домашка пришла? +# Ответ: нужно зайти в группу homework, увидеть свой ник и "прими пул" +# 2) Как принять домашку? +# Ответ: нужно зайти в Github Desktop и нажать кнопку Feth origin +# 3) Зачем нужна кнопка history и какие функции появляются при нажатии правой кнопки мыши на коммит? +# Ответ: В этом разделе можно увидеть commit. При нажатии правой кнопки мыши появляется кнопка view on github (можно открыть на github) +# 3.1) Где брать ссылку на коммит? куда её отправлять? +# Ответ: ссылку на commit берем с github и отправляем в чат review(запросы) +# 4) Что такое файл лога? +# Ответ: это файл где видны все изменения +# 4.1) Когда нужно его пушить? +# Ответ: когда заполнил после каждого задания +# 5) Что такое интерпретатор? +# Ответ: интерпретатор это программа которая запускает код +# 6) Где можно выбрать интерпритатор? +# Ответ: интерпретатор можно выбрать в интерфейсе IDE +# 7) Что такое модуль? +# Ответ: это файлы .py или .ypynb +# 8) Как создать и отправить коммит? +# Ответ: в кошке нужно внизу слева написать название и нажать commit to main +# 9) Как посмотреть что коммит точно отправлен и находится в github? +# 1. Проверить локально, что всё запушено +# В терминале в папке проекта: git status +# Если видим строку типа: Your branch is up to date with 'origin/main'. +# — значит локальная ветка синхронизирована с GitHub (ветка main уже запушена). +# 2. Убедиться, что нужный коммит есть на удалённой ветке: git log -1 +# Скопировать hash последнего коммита (что‑то вроде abc1234), затем: +# git log origin/main (или свою ветку: origin/my-branch) +# Если этот hash есть в списке — коммит точно на GitHub. +# 3. Проверить прямо в GitHub +# Зайти на страницу репозитория. +# Открыть вкладку Commits (или список коммитов рядом с веткой). +# Найти свой последний коммит по: сообщению (commit message), времени,или по hash (первые 7 символов). +# Если он там есть — значит коммит уже в GitHub. +# 10) Какая команда показывает что код не прошёл проверки на ошибки? +# Ответ: pre-commit run --all-files +# 10.1) Напишите список линтеров которые используются для проверки кода и дайте их краткую характеристику. +# Ответ: Pylint - Анализирует код на соответствие стандартам PEP 8, ищет ошибки, проверяет качество кода, выставляет оценку коду по 10-балльной шкале, очень строгий и настраиваемый, может находить проблемы в именовании переменных. +# Pydocstyle - Проверяет наличие и правильность docstring (строк документации), следит за соответствием документации стандарту PEP 257, требует, чтобы у функций, классов и модулей были описания. +# Flake8 - Объединяет несколько инструментов: PyFlakes (логические ошибки), pycodestyle (стиль кода), McCabe (сложность кода), быстрый, простой в использовании, только предупреждает о проблемах, но не исправляет их. +# Mypy - Статический типизатор (type checker), проверяет соответствие типов данных объявленным аннотациям, помогает находить ошибки, связанные с передачей значений неверного типа. +# 11) Как узнать какой именно линтер не прошёл проверку? +# Ответ: в терминале увидим секцию и какой линтер показывает ошибку и её код, после ввода pre-commit run --all-files +# 12) Линтер Pylint видит markdown? +# Ответ: нет, он их игнорирует +# 13) Номер ячейки в терминале и номер ячейки в vs code может отличаться? в каком случае? +# Ответ: может, если ячейки разного формата, например marcdown и python +# 14) Где посмотреть номер ячейки в vscode? +# Ответ: в нижнем поле справа VS Code (Cell) +# 15) В каком формате ipynb отправляется в гитхаб? причём здесь JSON? +# Ответ: ipynb в кошке отображается в формате JSON и в этом же формате он отправляется. В Github он хранит в формате JSON, но при открытии в WEB будет красивый читаемый файл +# 16) Где посмотреть в какой ячейке ошибка? +# Ответ: в нижнем поле справа VS Code (Cell) +# 17) Как запустить терминал? +# Ответ: можно открыть сочетанием ctrl + j и выбрать вкладку терминал +# 18) Что такое линтер? +# Ответ: программа которая проверяет код на правильность +# 19) В какой сайт нужно вставлять код ошибки если ошибка связана с pylint? +# Ответ: в поиск на офсайте Pylint +# 20) Секция pydocstyle в большинстве случае автоматический закрывается после исправления ошибок в каком линтере? +# Ответ: Pylint +# 21) Что такое описание модуля? Оно должно отражать информацию о том что находится в модуле? +# Ответ: Описание модуля это краткое название кода или содержания ячеек +# 21.1) С какой git команды начинается утро программиста? +# Ответ: git pull — подтянуть свежие изменения команды. +# 22) После внесения изменений в файлах, кнопка open in vs code пропадает в кошке, как по другому открыть vs code из кошки? +# Ответ: Нужно нажать в кошке правой кнопкой мышки на кнопку current repository и из выпадающего списка выбрать командуopen in vs code +# 23) Что такое stash? +# Ответ: стэш означает что в одном файле работают несколько пользователей +# Общее объяснение концепции. +# 23.1) Как сохранить стэш? +# git командa: git stash +# git stash save "моё описание изменений" +# нужно зайти в stashed changed и нажать restore +# Кнопка в vs code: +# restore +# 23.2) Как восстановить стэш(подсказка: https://t.me/c/1937296927/3602/25747)?: +# git команда(подсказка: https://t.me/c/1937296927/3602/19531)?: +# Восстановить стэш +# Вернуть и оставить стэш в списке: +# git stash apply stash@{N} +# (если N не указать – применится последний: git stash apply) +# Вернуть и сразу удалить этот стэш: +# git stash pop stash@{N} +# (или просто git stash pop для последнего) +# 23.3) Различие между стэшем и коммитом. +# Когда лучше сохранить изменения в стэше, а когда коммитить. +# Ответ:Коммит +# Постоянная точка в истории репозитория. +# Уходит на GitHub при git push. +# Должен иметь осмысленное сообщение и более‑менее законченные изменения. +# Видят все, кто работает с репо. +# Стэш (git stash) +# +# Временное локальное сохранение незакоммиченных изменений. +# Не попадает в историю коммитов и на GitHub. +# Удобен для “черновиков”, переключения задач, экспериментов. +# Хранится только у тебя локально. +# Когда стэш лучше: +# Нужно быстро переключиться на другую ветку/задачу, а текущие правки ещё “сырые”. +# Надо сделать git pull, но не хочешь сейчас разруливать конфликты. +# Хочешь проверить, ломают ли код именно твои изменения (убрать → проверить → вернуть). +# У тебя просто черновой эксперимент, который не готов попадать в историю. +# Команда: git stash (или с описанием: git stash save "черновик"). +# +# Когда коммит лучше: +# Изменения: +# логически закончены (фикс бага, маленькая фича, рефакторинг), +# полезны тебе или другим в будущем. +# Хочешь: +# иметь понятную историю, +# поделиться кодом через GitHub, +# уметь вернуться к этому состоянию. +# Команда: git commit -m "осмысленное сообщение" → потом git push. +# 23.4) Как просмотреть список сохраненных стэшей? +# git команда (подсказка: https://t.me/c/1937296927/3602/19531): +# Git‑команда: +# git stash list +# Она покажет все стэши вида: +# stash@{0}: On branch-name: сообщение +# stash@{1}: On other-branch: другое сообщение +# 23.5) Как удалить стэш? +# Команды для удаления отдельных стэшей или всех сразу. +# git команда (подсказка: https://t.me/c/1937296927/3602/19531): +# Удалить один стэш +# Удалить конкретный стэш по номеру: +# git stash drop stash@{N} +# пример: +# git stash drop stash@{0} +# Удалить последний (верхний) стэш: +# git stash drop +# Удалить все стэши сразу +# git stash clear +# 23.6) Практические примеры использования стэша. +# Краткие сценарии, где стэш помогает. +# git stash — временно прячет текущие незакоммиченные изменения, чтобы рабочая директория стала “чистой”, а потом можно вернуть их назад. +# +# Краткие сценарии, когда стэш реально помогает +# 1. Срочно переключиться на другую задачу / ветку +# Ты что‑то делаешь в feature-a, но приходит срочный баг в main. +# git stash # спрятать текущие незавершённые изменения +# git checkout main # перейти на основную ветку +# (фиксишь баг, коммитишь, пушишь) +# git checkout feature-a +# git stash pop # вернуть свои изменения и продолжить +# 2. Нужно сделать git pull, но есть локальные правки +# git pull ругается, что есть незакоммиченные изменения. +# git stash # спрятать +# git pull # обновить код +# git stash pop # наложить свои правки поверх свежего кода +# 3. Проверить, “виноваты ли мои изменения” (быстрая диагностика бага) +# Что‑то сломалось, не уверен — это мой код или уже было. +# git stash # убрать мои изменения +# (запустить тесты / приложение +# если всё работает → баг в моих изменениях) +# git stash pop +# 4. Перекинуть черновые правки в другую ветку +# Начал менять код в main, понял, что надо было в новой ветке. +# git stash +# git checkout -b new-feature +# git stash pop +# теперь мои изменения в правильной ветке +# 5. Хочешь сохранить эксперимент, но не коммитить “мусор” +# Сделал кучу пробных изменений, но не хочешь коммитить, зато потом, может, пригодится: +# git stash save "эксперимент с новой идеей" +# рабочая директория чистая, можно продолжать +# git stash list # посмотреть все стэши +# git stash pop # вернуть самый последний +# git stash apply stash@{2} # вернуть конкретный стэш +# 24) Где посмотреть что есть конфликт в файлах? +# Ответ: в кошке напротив названия файла будет стоять желтый треугольник +# 24.1) Когда он появляется? +# Ответ: когда есть конфликт в файлах +# 25) Как решить конфликт в файлах? +# Ответ: нужно выбрать что оставляем или оба сразу, можно вручную удалить маркеры и закоммитить +# 26) Напишите правильное утверждение +# -Зелёное то что пришло с гитхаба и синее локальные изменения или синее то что пришло с гитхаба и зелёное это локальные изменения +# Ответ: Зелёное то что пришло с гитхаба и синее локальные изменения +# 27) Если мы работаем в одном файле, можно ли принять pull после того как вы спрячете в стэш свои изменения? +# Ответ: можно +# 27.1) Что может произойти когда stash восстановите после принятия pull? +# Ответ: конфликт изменений, гит не понимает какую версию брать +# 28) Сколько способов решения конфликтов было показано в видео? Напишите ЧИСЛО и укажите их способы. +# Ответ: 4 +# 1. Нажать кнопку accept current change и примется изменения с GiThub. +# 2. Нажать кнопку accept incoming change и примется изменения локальные. +# 3. Нажать кнопку accept both change, тогда примется оба изменения. +# 4. Удалить вручную что не нужно и нажать кнопку resolve in merge editor +# 29) Что делает кнопка complete merge? +# Ответ: принимает изменения после нажатия resolve in merge editor +# 30) В какой чат нужно писать если остались вопросы? +# Ответ: https://t.me/c/1937296927/2415 (Helpme) +# 31) Что такое FORK? Зачем его делают? +# Ответ: Это копия чужого репозитария уменя на аккаунте. FORK делают для того чтобы внести вклад в чужой проект, иметь свою ветку чужого проекта, можно эксперментировать не боясь сломать код, +# 32) Как скачать форкнутый репозиторий на локальный компьютер? +# Ответ: +# 1. Жмем кнопку fork на GitHub. +# 2. Находим свой fork на GitHub - открываем свой профиль → Repositories. +# находим нужный репозиторий (с подписью “forked from …”). +# 3. Открываем его и жмём зелёную кнопку Code. +# Копируем URL, например: https://github.com/ТВОЙ_ЛОГИН/ИМЯ_РЕПО.git +# 4. Отккрываем терминал (powershell) и пишем: +# cd C:\MyProjectsPy # или другая папка, где хотим хранить проект +# git clone https://github.com/ТВОЙ_ЛОГИН/ИМЯ_РЕПО.git +# 5. После этого появится папка с названием проекта +# 33) С какой вероятностью ваши ошибки были уже решены? и кто их решил? +# Ответ: большая, можно посмотреть issuise проекта +# 34) Как создать файл в vs code? +# Ответ: нажать CTRL + ALT + Windows + N +# 35) Файл лога нужно заполнять в конце каждого урока? +# Ответ: да. +# ================== +# +# Дополнительные вопросы: +# 1)Какая команда конвертирует файл в py из ipynb? +# ответ: jupyter nbconvert --to python ваш_файл.ipynb (для jupiter) +# 2) Что такое пакетный менеджер? Вы пользуетесь пакетным менеджером conda или pip? Какой лучше использовать для дата сайнс? +# Ответ: по сути это менеждер библиотек. Лучше использовать conda, если чего не хватает установить через pip +# 3) Почему расширение py лучше чем ipynb? +# Ответ: .py лучше подходит для нормальной разработки, а .ipynb — для экспериментов и обучения. +# 4) Что такое pep8? +# подсказка:https://peps.python.org/pep-0008/ +# Ответ: это документация на python +# 4.1) линтеры проверяют на соблюдение pep8? +# Ответ: да +# 4.2) Какая нотация используется для создания переменных? +# ответ на 85-95 страницы https://t.me/c/1937296927/1/16676 +# Ответ: Имя должно быть лаконичным, но информативным. Оно должно легко находиться +# функцией поиска Ctrl-F +# 4.3) Может ли переменная состоять из одной буквы например андерскор "_" ? +# Ответ: может +# 4.4) Зачем и где мы используем андерскор _ +# Ответ: если явно не показываем переменную +# 4.5) По PEP8 допустима переменная в одну букву? +# ответ на 85-95 страницы https://t.me/c/1937296927/1/16676 +# Ответ: PEP 8 разрешает однобуквенные имена в коротких, очевидных контекстах. +# + +#