From 7f10bf61232b2148112998d1247d6ecc4543989b Mon Sep 17 00:00:00 2001 From: "Hey, I'm Artem!" Date: Sun, 4 Jan 2026 17:54:58 +0200 Subject: [PATCH 01/10] =?UTF-8?q?=D0=A1=D0=B4=D0=B5=D0=BB=D0=B0=D0=BB=20In?= =?UTF-8?q?tro=20=D0=B4=D0=BE=207.2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Рег акков, программы, репозиторй --- log.ipynb | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 log.ipynb diff --git a/log.ipynb b/log.ipynb new file mode 100644 index 00000000..55a490fa --- /dev/null +++ b/log.ipynb @@ -0,0 +1,41 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "7b9dd207", + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"intro. 7.2.\"\"\"" + ] + }, + { + "cell_type": "markdown", + "id": "2489f364", + "metadata": {}, + "source": [ + "\n", + "04/01/2026\n", + "\n", + "1 - Зарегистрировал аккаунты\n", + "2 - Скачал и настроил программы + репозиторий\n", + "3 - Договор + знакомство\n", + "4 - Сделал первый fork \n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "name": "python", + "version": "3.14.2" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From fc5a2e5622fdbb0b3c273fd16e36077f5a89f34b Mon Sep 17 00:00:00 2001 From: "Hey, I'm Artem!" Date: Mon, 19 Jan 2026 19:36:42 +0200 Subject: [PATCH 02/10] =?UTF-8?q?=D0=A1=D0=B4=D0=B5=D0=BB=D0=B0=D0=BB=20?= =?UTF-8?q?=D0=BA=D0=B2=D0=B8=D0=B7=201=20=D0=B8=202?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- quiz.ipynb | 317 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 317 insertions(+) create mode 100644 quiz.ipynb diff --git a/quiz.ipynb b/quiz.ipynb new file mode 100644 index 00000000..3ff9dd07 --- /dev/null +++ b/quiz.ipynb @@ -0,0 +1,317 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "033bce5f", + "metadata": { + "vscode": { + "languageId": "plaintext" + } + }, + "outputs": [], + "source": [ + "\"\"\"Квизы 1 и 2.\"\"\"" + ] + }, + { + "cell_type": "markdown", + "id": "488ae08f", + "metadata": {}, + "source": [ + "\n", + "\n", + "В ответе подробно всё опишите и обязательно нужно указывать тайм код из видео где я это сказал, по желанию, дополнительно прикладываем скриншот из видео.\n", + "Если вы знаете ответы на вопросы из Вашего опыта, то таймкоды из видео не надо указывать и т.д.\n", + "\n", + "1) Как понять, что домашка пришла?\n", + "В чате HomeWork - мой ник и \"прими пул\" \n", + "Таймкод: 00:00 - 00:25\n", + "2) Как принять домашку?\n", + "Заходим в декстоп гитхаб, обновляем (fetch orgon), смотрим хистори - верхний комит (иногда другие комиты)\n", + "Таймкод: 00:25 - 00:56\n", + "3) Зачем нужна кнопка history и какие функции появляются при нажатии правой кнопки мыши на коммит?\n", + "Это кнопка показывает все комиты. При нажатии правой кнопкой мыши на коммит появляется опция view on GitHub, которая открывает коммит на сайте GitHub. Также reset, checkout, reorder, revert change и пр.\n", + "3.1) Где брать ссылку на коммит? куда её отправлять? \n", + "После нажатия view on GitHub - копируем ссылку из адресной строки браузера. Эту ссылку нужно отправить в Telegram-чат Homework с сообщением \"коммит отдал\".\n", + "4) Что такое файл лога? В нём указывается дата урока и то, что было изучено/запомнено.\n", + "Файл для заполнения в конце каждого урока. В нём указывается дата урока и то, что было изучено/запомнено.\n", + "4.1) Когда нужно его пушить?\n", + "Когда отдаём домашку (в целом всегда, так как, чтобы отдать домашку - нужно запушить)\n", + "5) Что такое интерпритатор? \n", + "Программа, которая читает и запускает наш код.\n", + "6) Где можно выбрать интерпритатор?\n", + "Нажимаем на стрелочка слева от ячейки с кодом и сверху ввыбираем. ТАкже можно выбрать справа чуть выше ячейки с кодом. \n", + "7) Что такое модуль? \n", + "Модуль это обычный файл .py или .ipynb.\n", + "Таймкод: 08:33 - 09:03\n", + "8) Как создать и отправить коммит?\n", + "Заходим в гит клиент - пишим название комита(что сделали) - кнопка комит ту мейн = кнопка пуш ориджин (всё комит отправлен). НО мы также заходим в историю, видим, что комит отправлен - тыкаем смотреть на гитхабе - копируем ссылку и отправляем в чат homework\n", + "Таймкод: 03:17 - 03:48\n", + "9) Как посмотреть что коммит точно отправлен и находится в github?\n", + "После Push Origin можно зайти в History и увидеть там отправленный коммит(если он есть - он отправленный). Для полной уверенности можно перейти по ссылке на GitHub\n", + "10) Какая команда показывает что код не прошёл проверки на ошибки? \n", + "This diff contains a change in line endings from \"LF\" to \"CRLF\"\n", + "10.1) Напишите список линтеров которые используются для проверки кода и дайте их краткую характеристику.\n", + "pylint — проверяет код на соответствие стандартам, ищет ошибки, выдает подробный отчет с кодами ошибок (например, C0114)\n", + "pydocstyle — проверяет только документацию (docstrings) на соответствие стандартам (например, D100, D400)\n", + "Таймкод: 05:15 \n", + "11) Как узнать какой именно линтер не прошёл проверку?\n", + "В окне с ошибками в Гит или в выводе терминала при заупуске команды pre-comit run --all-files (будет красным)\n", + "Таймкод: 05:10 - 06:25\n", + "12) Линтер Pylint видит markdown?\n", + "Нет. Поэтому иногда могут несвопадать номера ячеек в линтере и в vs code\\cursore\n", + "07:04\n", + "13) Номер ячейки в терминале и номер ячейки в vs code может отличаться? в каком случае?\n", + "Да, если есть ячейки Markdown - линтер их игнорирует. Он будет нумеровать только ячейки с кодом. В VS Code\\cursore отображается общая нумерация всех ячеек. \n", + "Таймкод: 07:04 - 07:30\n", + "14) Где посмотреть номер ячейки в vscode?\n", + "В правом нижнем углу, например Cell 1 of 2.\n", + "Таймкод: 06:56 - 07:04\n", + "15) В каком формате ipynb отправляется в гитхаб? причём здесь JSON?\n", + "ipynb отправляется в формате JSON\n", + "Таймкод: 03:17\n", + "16) Где посмотреть в какой ячейке ошибка?\n", + "В отчете линтера будет указан номер ячейки.\n", + "Этот номер нужно сопоставить с нумерацией ячеек в VS Code или в исходном коде файла.\n", + "Таймкод: 05:39 - 06:05\n", + "17) Как запустить терминал?\n", + "Нажать на кнопку Терминал в верху и выбрать New Terminal.\n", + "Таймкод: 05:39 - 06:05\n", + "18) Что такое линтер?\n", + "Это программа, которая проверяет файл на корректность. Т.е. исходный код на соответствие стандартам оформления, стилю и наличие потенциальных ошибок.\n", + "Таймкод: 06:05 - 06:31\n", + "19) В какой сайт нужно вставлять код ошибки если ошибка связана с pylint?\n", + "официальный сайт pylint.org и там искать по коду ошибки (например, C0114).\n", + "Таймкод: 08:20\n", + "20) Секция pydocstyle в большинстве случае автоматический закрывается после исправления ошибок в каком линтере?\n", + "В pylint\n", + "Таймкод: 09:54 - 10:22\n", + "21) Что такое описание модуля? Оно должно отражать информацию о том что находится в модуле?\n", + "Описание модуля — это многострочный комментарий (в тройных кавычках) в начале файла. Должно кратко описывать информацию или функционал модуля \n", + "Таймкод: 09:03 - 09:26\n", + "21.1) С какой git команды начинается утро программиста?\n", + "git fetch\n", + "22) После внесения изменений в файлах, кнопка open in vs code пропадает в кошке, как по другому открыть vs code из кошки?\n", + "Нужно навести курсор на текущий репозиторий (сверху, где история и пр.), нажать правую кнопку мыши и выбрать Open in VS Code.\n", + "Таймкод: 14:06 - 14:27\n", + "23) Что такое stash? \n", + "Сохранение ихменений в буффер обмена, так как в интернете и в локалке работали в одном файле с другим прогером. Мы сохраняем в буфер обмена и принимаем изменения с интернета. В changes (Слева от history) в гите - появится кнопка stashed changes - жмём restore - далее открываем файл. То что зелёное - пришло с гитхаба, синее - наши локальные изменения. И либо жмём accept current changes - тогда примутся изменения с интернета. Либо accept incoming changes - тогда будут наши (нежелательно, жмём в редких случаях). Либо accept both changes - оба изменения. Либо ручками удаляем то что не нужно и жмём - resolve in merge editor\n", + " Таймкод: 15:10 - 17:20\n", + "23.1) Как сохранить стэш?\n", + " git командa(подсказка: https://t.me/c/1937296927/3602/19531): \n", + "git stash save \"NAME_STASH\"\n", + " Кнопка в vs code:\n", + "accept current changes\n", + "23.2) Как восстановить стэш(подсказка: https://t.me/c/1937296927/3602/25747)?:\n", + "В гите после Pull нужно зайти в Stash Changes и нажать Restore\n", + " git команда(подсказка: https://t.me/c/1937296927/3602/19531)?:\n", + "git stash apply \"NUMBER_STASH\"\n", + "23.3) Различие между стэшем и коммитом. \n", + "Коммит — это чек поинт истории проекта. Стэш — временное хранилище в буфере. \n", + " Когда лучше сохранить изменения в стэше, а когда коммитить.\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 drop stash@{n}\n", + "Удалить все: git stash clear\n", + "Также гуглил\n", + "23.6) Практические примеры использования стэша. \n", + " Краткие сценарии, где стэш помогает.\n", + "Когда локально и в интернете работали в одном файле и нужно сравнить и принять итоговую фервию файла.\n", + "Таймкод: 15:10\n", + "24) Где посмотреть что есть конфликт в файлах? \n", + "В гит на файле с конфликтом появляется восклицательный знак. ТАкже при попытке сделать коммит система сообщит о конфликте.\n", + "Таймкод: 16:16\n", + "24.1) Когда он появляется?\n", + "Конфликт появляется, когда Giгитt не может объединить изменения. Когда я и кто-то изменили одни и те же строки в одном файле.\n", + "25) Как решить конфликт в файлах?\n", + "Мы сохраняем в буфер обмена и принимаем изменения с интернета. В changes (Слева от history) в гите - появится кнопка stashed changes - жмём restore - далее открываем файл. То что зелёное - пришло с гитхаба, синее - наши локальные изменения. И либо жмём accept current changes - тогда примутся изменения с интернета. Либо accept incoming changes - тогда будут наши (нежелательно, жмём в редких случаях). Либо accept both changes - оба изменения. Либо ручками удаляем то что не нужно и жмём - resolve in merge editor\n", + " Таймкод: 15:10 - 17:20\n", + "26) Напишиие правильное утверждение\n", + "Зелёное — то, что пришло с гитхаба (Incoming), и синее — локальные изменения (Current).\n", + "Таймкод: 16:34 - 17:03\n", + "27) Если мы работаем в одном файле, можно ли принять pull после того как вы спрячете в стэш свои изменения? \n", + "Да, и так и нужно делать. Сначала Stash своих изменений, затем Pull обновлений с GitHub.\n", + "Таймкод: 15:25\n", + "27.1) Что может произойти когда stash восстановите после принятия pull?\n", + "Гит не поинмает, какие изменения сохранить\n", + "Таймкод: 16:10\n", + "28) Сколько способов решения конфликтов было показано в видео? Напишите ЧИСЛО и укажите их способы.\n", + "3 способа.\n", + "Принять текущие изменения (Accept Current Changes)\n", + "Принять входящие изменения (Accept Incoming Changes)\n", + "Принять оба изменения (Accept Both Changes) и/или отредактировать вручную\n", + "\n", + "29) Что делает кнопка complete merge?\n", + "Кнопка Complete Merge финализирует процесс ручного разрешения конфликта. После её нажатия файл помечается как разрешенный, и можно создавать коммит с результатом слияния.\n", + "(гуглил)\n", + "30) В какой чат нужно писать если остались вопросы?\n", + "в чат ХЕЛП\n", + "31) Что такое FORK? Зачем его делают? \n", + "Ветка на гитхабе, чтобы скпоировать чужой код и работать с ним. \n", + "32) Как скачать форкнутый репозиторий на локальный компьютер?\n", + "Если мы форкнули - этот репозитрй в акке гитахаба есть. Теперь заходит в гит декстоп - выбираем и клонируем репозиторий (кнопка над историей) - он начинает скачиваться.\n", + "33) С какой вероятностью ваши ошибки были уже решены? и кто их решил?\n", + "С вероятностью 99%. Преподаватель или другие студенты. Информацию можно найти в чате Help\n", + "34) Как создать файл в vs code?\n", + "Правой кнопкой мыши в списке файлов - new file\n", + "35) Файл лога нужно заполнять в конце каждого урока?\n", + "Да\n", + "==================\n", + "\n", + "Дополнительные вопросы:\n", + "1)Какая команда конвертирует файл в py из ipynb? \n", + "подсказка https://t.me/c/1937296927/1/26527 \n", + "jupyter nbconvert --to python notebook_name.ipynb\n", + "2) Что такое пакетный менеджер? Вы пользуетесь пакетным менеджером conda или pip? Какой лучше использовать для дата сайнс?\n", + "Пакетный менеджер — это инструмент для автоматизации установки, обновления, настройки и удаления программных пакетов (библиотек) и их зависимостей\n", + "conda \n", + "conda \n", + "3) Почему расширение py лучше чем ipynb?\n", + "PY - Гарантирует линейное выполнение.\n", + "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", + "Для имен переменных и функций используется snake_case (все буквы строчные, слова разделяются подчеркиванием)\n", + "4.3) Может ли переменная состоять из одной буквы например андерскор \"_\" ?\n", + "ДА\n", + "4.4) Зачем и где мы используем андерскор _ \n", + "- for _ in range(10): # Цикл выполнится 10 раз, номер итерации не нужен\n", + "x, _, z = coordinates # Нас интересует только первая и третья координата\n", + "4.5) По PEP8 допустима переменная в одну букву?\n", + "ответ на 85-95 страницы https://t.me/c/1937296927/1/16676\n", + "Да, в определенных контекстах:\n", + "Для счетчиков циклов, координат, файловых объектов в контекстных менеджерах." + ] + }, + { + "cell_type": "markdown", + "id": "f5431a49", + "metadata": {}, + "source": [ + "\n", + "\n", + "1. Как включить автосохранение данных в VSCODE?\n", + "Зайти в меню файл и включить опцию Автосейв\n", + "2. Как настроить перенос строки? \n", + "В настройках Preferences -> Settings нужно найти опцию Wrap, изменить её на World Wrap Column и установить значение 70 символов.\n", + "3. Сколько символов по pep8 разрешено на строке?\n", + "не больше 79 символов\n", + "4. Какие способы переноса строк показаны в видео:\n", + "\n", + "string_continued = \"This is a long string that we want to \" \\\n", + " \"split across multiple lines.\"\n", + "print(string_continued)\n", + "\n", + "4.2 Тройные кавычки (''' или \"\"\") \n", + "\n", + "multi_line_string = \"\"\"This is a string that spans\n", + "multiple lines. You can write freely\n", + "and it will keep the line breaks.\"\"\"\n", + "print(multi_line_string)\n", + "\n", + "4.3 Создание списка строк и объединение с помощью join\n", + "\n", + "strings = [\n", + " \"This is the first line.\",\n", + " \"This is the second line.\",\n", + " \"This is the third line.\"\n", + "]\n", + "result = \"\\n\".join(strings) # Используем перенос строк '\\n'\n", + "print(result)\n", + "\n", + "4.4 Использование круглых скобок для продолжения строки\n", + "long_string = (\n", + " \"This is a very long string that I would like to \"\n", + " \"continue on the next line.\"\n", + ")\n", + "print(long_string)\n", + "\n", + "4.5 Форматированные строки (f-строки) с использованием скобок\n", + "letter_a = 5\n", + "letter_b = 6\n", + "product_ab = letter_a * letter_b\n", + "\n", + "message = (\n", + " f\"when {letter_a} is multiplied by {letter_b}, \"\n", + " f\"the result is {product_ab}\"\n", + ")\n", + "print(message)\n", + "\n", + "4.6 Сложение строк с помощью +\n", + "\n", + "string_part1 = \"This is the first part, \"\n", + "string_part2 = \"and this is the second part.\"\n", + "full_string = string_part1 + string_part2\n", + "print(full_string)\n", + "\n", + "5. Проверка на ошибки c помощью кнопки problems, где она находится?\n", + "В панели, там же где и терминал (внизу)\n", + "Таймкод: 04:50\n", + "6. Где в vscode находится клиент гита? как в нём отправить коммит? как принять домашку?\n", + "В боковой панели - соединённые три кружочка. Отправить - source control - commit and push. Sours control repositories - три точки - pull\n", + "Таймкод: 06:20\n", + "7. Что такое GIT? он локальный? В нём можно посмотреть историю изменений файлов и вернуться к любому коммиту?\n", + "Git — это система контроля версий/ Да, локальная. ДА, можно\n", + "8. Как вставить картинку в маркдаун? \n", + "Ctrl+V \n", + "9. Где посмотреть длину строки в vs code?\n", + "в правом нижнем углу \n", + "Таймкод: 01:07\n", + "10. Как поменять тип ячейки с питона на маркдаун?\n", + "В выпадающем меню в каждой ячейке\n", + "11. Как запустить сразу все ячейки в юпитере?\n", + "Run All - кнопка сверху\n", + "12. Как изменить размер картинки в юпитере? Нужно для этого знать HTML?\n", + "HTML-тег + атрибут width или height\n", + "13. Какой хоткей чтобы запустить ячейку с смещением на следующую?\n", + "Shift + Enter\n", + "14. Как включить отображение номеров строк в юпитере(Cell line numbers)?\n", + "кнопка с тремя точками (...) справа над ячейкой и выбрать Show Cell Line Numbers\n", + "15. Что такое \"Go To\" чем это полезно? Как перейти сразу на ошибочную ячейку?\n", + "При запуске всего кода можем сразу перейти к ячейке с ошибкой.\n", + "16. Как очистить вывод ячеек которые уже запущены?\n", + "Clear All Outputs - там же где run all\n", + "17. Как работать одновременно в нескольких файлах в VSCODE? Что такое SPLIT?\n", + "SPLIT - раздедение. Справа вверху SPLIT edit - и он разделяет экран, чтобы работат ьв нескольких файлах\n", + "18. Каким сочетанием убирается левый сайдбар?\n", + "Ctrl + B\n", + "19. Кнопка два листочка это наши локальные файлы?\n", + "Да\n", + "20. Какая ошибка появилась в трассировке при запуске всех ячеек DICT или LIST?\n", + "dict is not defined\n", + "Таймкод: 10:10\n", + "21. Вы ознакомились с https://t.me/c/1937296927/832/19307? и https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet?\n", + "ДА!\n", + "22. Что такое валидация?\n", + "Проверка кода на ошибки и стандарты\n", + "Таймкод: 09:50 \n", + "23. Что такое трассировка ошибки?\n", + "Отображение (визуал) ошибки - отчёт об ошибке\n", + "Таймкод: 10:00 \n", + "24. Что значит отвалился интерпритатор?\n", + "Выдал ошибку и остановил выполнение кода" + ] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From fa09ec42038381cafe76c0ec078d2c442f3b95cf Mon Sep 17 00:00:00 2001 From: "Hey, I'm Artem!" Date: Mon, 19 Jan 2026 19:44:33 +0200 Subject: [PATCH 03/10] Quiz #6 (https://github.com/SENATOROVAI/intro-cs/issues/6) Closes https://github.com/SENATOROVAI/intro-cs/issues/6 --- quiz.ipynb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quiz.ipynb b/quiz.ipynb index 3ff9dd07..72ce5bed 100644 --- a/quiz.ipynb +++ b/quiz.ipynb @@ -11,7 +11,7 @@ }, "outputs": [], "source": [ - "\"\"\"Квизы 1 и 2.\"\"\"" + "\"\"\"Квизы 1 и2.\"\"\"" ] }, { From 8105e5969e1928c03852657243c032bd48a94c01 Mon Sep 17 00:00:00 2001 From: "Hey, I'm Artem!" Date: Sun, 25 Jan 2026 12:28:34 +0200 Subject: [PATCH 04/10] Quiz #6 (https://github.com/SENATOROVAI/intro-cs/issues/6) Closes https://github.com/SENATOROVAI/intro-cs/issues/6 --- quiz.py | 281 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 281 insertions(+) create mode 100644 quiz.py diff --git a/quiz.py b/quiz.py new file mode 100644 index 00000000..1be9e65e --- /dev/null +++ b/quiz.py @@ -0,0 +1,281 @@ +"""Квизы 1 и2.""" + +# +# +# В ответе подробно всё опишите и обязательно нужно указывать тайм код из видео где я это сказал, по желанию, дополнительно прикладываем скриншот из видео. +# Если вы знаете ответы на вопросы из Вашего опыта, то таймкоды из видео не надо указывать и т.д. +# +# 1) Как понять, что домашка пришла? +# В чате HomeWork - мой ник и "прими пул" +# Таймкод: 00:00 - 00:25 +# 2) Как принять домашку? +# Заходим в декстоп гитхаб, обновляем (fetch orgon), смотрим хистори - верхний комит (иногда другие комиты) +# Таймкод: 00:25 - 00:56 +# 3) Зачем нужна кнопка history и какие функции появляются при нажатии правой кнопки мыши на коммит? +# Это кнопка показывает все комиты. При нажатии правой кнопкой мыши на коммит появляется опция view on GitHub, которая открывает коммит на сайте GitHub. Также reset, checkout, reorder, revert change и пр. +# 3.1) Где брать ссылку на коммит? куда её отправлять? +# После нажатия view on GitHub - копируем ссылку из адресной строки браузера. Эту ссылку нужно отправить в Telegram-чат Homework с сообщением "коммит отдал". +# 4) Что такое файл лога? В нём указывается дата урока и то, что было изучено/запомнено. +# Файл для заполнения в конце каждого урока. В нём указывается дата урока и то, что было изучено/запомнено. +# 4.1) Когда нужно его пушить? +# Когда отдаём домашку (в целом всегда, так как, чтобы отдать домашку - нужно запушить) +# 5) Что такое интерпритатор? +# Программа, которая читает и запускает наш код. +# 6) Где можно выбрать интерпритатор? +# Нажимаем на стрелочка слева от ячейки с кодом и сверху ввыбираем. ТАкже можно выбрать справа чуть выше ячейки с кодом. +# 7) Что такое модуль? +# Модуль это обычный файл .py или .ipynb. +# Таймкод: 08:33 - 09:03 +# 8) Как создать и отправить коммит? +# Заходим в гит клиент - пишим название комита(что сделали) - кнопка комит ту мейн = кнопка пуш ориджин (всё комит отправлен). НО мы также заходим в историю, видим, что комит отправлен - тыкаем смотреть на гитхабе - копируем ссылку и отправляем в чат homework +# Таймкод: 03:17 - 03:48 +# 9) Как посмотреть что коммит точно отправлен и находится в github? +# После Push Origin можно зайти в History и увидеть там отправленный коммит(если он есть - он отправленный). Для полной уверенности можно перейти по ссылке на GitHub +# 10) Какая команда показывает что код не прошёл проверки на ошибки? +# This diff contains a change in line endings from "LF" to "CRLF" +# 10.1) Напишите список линтеров которые используются для проверки кода и дайте их краткую характеристику. +# pylint — проверяет код на соответствие стандартам, ищет ошибки, выдает подробный отчет с кодами ошибок (например, C0114) +# pydocstyle — проверяет только документацию (docstrings) на соответствие стандартам (например, D100, D400) +# Таймкод: 05:15 +# 11) Как узнать какой именно линтер не прошёл проверку? +# В окне с ошибками в Гит или в выводе терминала при заупуске команды pre-comit run --all-files (будет красным) +# Таймкод: 05:10 - 06:25 +# 12) Линтер Pylint видит markdown? +# Нет. Поэтому иногда могут несвопадать номера ячеек в линтере и в vs code\cursore +# 07:04 +# 13) Номер ячейки в терминале и номер ячейки в vs code может отличаться? в каком случае? +# Да, если есть ячейки Markdown - линтер их игнорирует. Он будет нумеровать только ячейки с кодом. В VS Code\cursore отображается общая нумерация всех ячеек. +# Таймкод: 07:04 - 07:30 +# 14) Где посмотреть номер ячейки в vscode? +# В правом нижнем углу, например Cell 1 of 2. +# Таймкод: 06:56 - 07:04 +# 15) В каком формате ipynb отправляется в гитхаб? причём здесь JSON? +# ipynb отправляется в формате JSON +# Таймкод: 03:17 +# 16) Где посмотреть в какой ячейке ошибка? +# В отчете линтера будет указан номер ячейки. +# Этот номер нужно сопоставить с нумерацией ячеек в VS Code или в исходном коде файла. +# Таймкод: 05:39 - 06:05 +# 17) Как запустить терминал? +# Нажать на кнопку Терминал в верху и выбрать New Terminal. +# Таймкод: 05:39 - 06:05 +# 18) Что такое линтер? +# Это программа, которая проверяет файл на корректность. Т.е. исходный код на соответствие стандартам оформления, стилю и наличие потенциальных ошибок. +# Таймкод: 06:05 - 06:31 +# 19) В какой сайт нужно вставлять код ошибки если ошибка связана с pylint? +# официальный сайт pylint.org и там искать по коду ошибки (например, C0114). +# Таймкод: 08:20 +# 20) Секция pydocstyle в большинстве случае автоматический закрывается после исправления ошибок в каком линтере? +# В pylint +# Таймкод: 09:54 - 10:22 +# 21) Что такое описание модуля? Оно должно отражать информацию о том что находится в модуле? +# Описание модуля — это многострочный комментарий (в тройных кавычках) в начале файла. Должно кратко описывать информацию или функционал модуля +# Таймкод: 09:03 - 09:26 +# 21.1) С какой git команды начинается утро программиста? +# git fetch +# 22) После внесения изменений в файлах, кнопка open in vs code пропадает в кошке, как по другому открыть vs code из кошки? +# Нужно навести курсор на текущий репозиторий (сверху, где история и пр.), нажать правую кнопку мыши и выбрать Open in VS Code. +# Таймкод: 14:06 - 14:27 +# 23) Что такое stash? +# Сохранение ихменений в буффер обмена, так как в интернете и в локалке работали в одном файле с другим прогером. Мы сохраняем в буфер обмена и принимаем изменения с интернета. В changes (Слева от history) в гите - появится кнопка stashed changes - жмём restore - далее открываем файл. То что зелёное - пришло с гитхаба, синее - наши локальные изменения. И либо жмём accept current changes - тогда примутся изменения с интернета. Либо accept incoming changes - тогда будут наши (нежелательно, жмём в редких случаях). Либо accept both changes - оба изменения. Либо ручками удаляем то что не нужно и жмём - resolve in merge editor +# Таймкод: 15:10 - 17:20 +# 23.1) Как сохранить стэш? +# git командa(подсказка: https://t.me/c/1937296927/3602/19531): +# git stash save "NAME_STASH" +# Кнопка в vs code: +# accept current changes +# 23.2) Как восстановить стэш(подсказка: https://t.me/c/1937296927/3602/25747)?: +# В гите после Pull нужно зайти в Stash Changes и нажать Restore +# 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 drop stash@{n} +# Удалить все: git stash clear +# Также гуглил +# 23.6) Практические примеры использования стэша. +# Краткие сценарии, где стэш помогает. +# Когда локально и в интернете работали в одном файле и нужно сравнить и принять итоговую фервию файла. +# Таймкод: 15:10 +# 24) Где посмотреть что есть конфликт в файлах? +# В гит на файле с конфликтом появляется восклицательный знак. ТАкже при попытке сделать коммит система сообщит о конфликте. +# Таймкод: 16:16 +# 24.1) Когда он появляется? +# Конфликт появляется, когда Giгитt не может объединить изменения. Когда я и кто-то изменили одни и те же строки в одном файле. +# 25) Как решить конфликт в файлах? +# Мы сохраняем в буфер обмена и принимаем изменения с интернета. В changes (Слева от history) в гите - появится кнопка stashed changes - жмём restore - далее открываем файл. То что зелёное - пришло с гитхаба, синее - наши локальные изменения. И либо жмём accept current changes - тогда примутся изменения с интернета. Либо accept incoming changes - тогда будут наши (нежелательно, жмём в редких случаях). Либо accept both changes - оба изменения. Либо ручками удаляем то что не нужно и жмём - resolve in merge editor +# Таймкод: 15:10 - 17:20 +# 26) Напишиие правильное утверждение +# Зелёное — то, что пришло с гитхаба (Incoming), и синее — локальные изменения (Current). +# Таймкод: 16:34 - 17:03 +# 27) Если мы работаем в одном файле, можно ли принять pull после того как вы спрячете в стэш свои изменения? +# Да, и так и нужно делать. Сначала Stash своих изменений, затем Pull обновлений с GitHub. +# Таймкод: 15:25 +# 27.1) Что может произойти когда stash восстановите после принятия pull? +# Гит не поинмает, какие изменения сохранить +# Таймкод: 16:10 +# 28) Сколько способов решения конфликтов было показано в видео? Напишите ЧИСЛО и укажите их способы. +# 3 способа. +# Принять текущие изменения (Accept Current Changes) +# Принять входящие изменения (Accept Incoming Changes) +# Принять оба изменения (Accept Both Changes) и/или отредактировать вручную +# +# 29) Что делает кнопка complete merge? +# Кнопка Complete Merge финализирует процесс ручного разрешения конфликта. После её нажатия файл помечается как разрешенный, и можно создавать коммит с результатом слияния. +# (гуглил) +# 30) В какой чат нужно писать если остались вопросы? +# в чат ХЕЛП +# 31) Что такое FORK? Зачем его делают? +# Ветка на гитхабе, чтобы скпоировать чужой код и работать с ним. +# 32) Как скачать форкнутый репозиторий на локальный компьютер? +# Если мы форкнули - этот репозитрй в акке гитахаба есть. Теперь заходит в гит декстоп - выбираем и клонируем репозиторий (кнопка над историей) - он начинает скачиваться. +# 33) С какой вероятностью ваши ошибки были уже решены? и кто их решил? +# С вероятностью 99%. Преподаватель или другие студенты. Информацию можно найти в чате Help +# 34) Как создать файл в vs code? +# Правой кнопкой мыши в списке файлов - new file +# 35) Файл лога нужно заполнять в конце каждого урока? +# Да +# ================== +# +# Дополнительные вопросы: +# 1)Какая команда конвертирует файл в py из ipynb? +# подсказка https://t.me/c/1937296927/1/26527 +# jupyter nbconvert --to python notebook_name.ipynb +# 2) Что такое пакетный менеджер? Вы пользуетесь пакетным менеджером conda или pip? Какой лучше использовать для дата сайнс? +# Пакетный менеджер — это инструмент для автоматизации установки, обновления, настройки и удаления программных пакетов (библиотек) и их зависимостей +# conda +# conda +# 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 +# Для имен переменных и функций используется snake_case (все буквы строчные, слова разделяются подчеркиванием) +# 4.3) Может ли переменная состоять из одной буквы например андерскор "_" ? +# ДА +# 4.4) Зачем и где мы используем андерскор _ +# - for _ in range(10): # Цикл выполнится 10 раз, номер итерации не нужен +# x, _, z = coordinates # Нас интересует только первая и третья координата +# 4.5) По PEP8 допустима переменная в одну букву? +# ответ на 85-95 страницы https://t.me/c/1937296927/1/16676 +# Да, в определенных контекстах: +# Для счетчиков циклов, координат, файловых объектов в контекстных менеджерах. + +# +# +# 1. Как включить автосохранение данных в VSCODE? +# Зайти в меню файл и включить опцию Автосейв +# 2. Как настроить перенос строки? +# В настройках Preferences -> Settings нужно найти опцию Wrap, изменить её на World Wrap Column и установить значение 70 символов. +# 3. Сколько символов по pep8 разрешено на строке? +# не больше 79 символов +# 4. Какие способы переноса строк показаны в видео: +# +# 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) +# +# 5. Проверка на ошибки c помощью кнопки problems, где она находится? +# В панели, там же где и терминал (внизу) +# Таймкод: 04:50 +# 6. Где в vscode находится клиент гита? как в нём отправить коммит? как принять домашку? +# В боковой панели - соединённые три кружочка. Отправить - source control - commit and push. Sours control repositories - три точки - pull +# Таймкод: 06:20 +# 7. Что такое GIT? он локальный? В нём можно посмотреть историю изменений файлов и вернуться к любому коммиту? +# Git — это система контроля версий/ Да, локальная. ДА, можно +# 8. Как вставить картинку в маркдаун? +# Ctrl+V +# 9. Где посмотреть длину строки в vs code? +# в правом нижнем углу +# Таймкод: 01:07 +# 10. Как поменять тип ячейки с питона на маркдаун? +# В выпадающем меню в каждой ячейке +# 11. Как запустить сразу все ячейки в юпитере? +# Run All - кнопка сверху +# 12. Как изменить размер картинки в юпитере? Нужно для этого знать HTML? +# HTML-тег + атрибут width или height +# 13. Какой хоткей чтобы запустить ячейку с смещением на следующую? +# Shift + Enter +# 14. Как включить отображение номеров строк в юпитере(Cell line numbers)? +# кнопка с тремя точками (...) справа над ячейкой и выбрать Show Cell Line Numbers +# 15. Что такое "Go To" чем это полезно? Как перейти сразу на ошибочную ячейку? +# При запуске всего кода можем сразу перейти к ячейке с ошибкой. +# 16. Как очистить вывод ячеек которые уже запущены? +# Clear All Outputs - там же где run all +# 17. Как работать одновременно в нескольких файлах в VSCODE? Что такое SPLIT? +# SPLIT - раздедение. Справа вверху SPLIT edit - и он разделяет экран, чтобы работат ьв нескольких файлах +# 18. Каким сочетанием убирается левый сайдбар? +# Ctrl + B +# 19. Кнопка два листочка это наши локальные файлы? +# Да +# 20. Какая ошибка появилась в трассировке при запуске всех ячеек DICT или LIST? +# dict is not defined +# Таймкод: 10:10 +# 21. Вы ознакомились с https://t.me/c/1937296927/832/19307? и https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet? +# ДА! +# 22. Что такое валидация? +# Проверка кода на ошибки и стандарты +# Таймкод: 09:50 +# 23. Что такое трассировка ошибки? +# Отображение (визуал) ошибки - отчёт об ошибке +# Таймкод: 10:00 +# 24. Что значит отвалился интерпритатор? +# Выдал ошибку и остановил выполнение кода From 4fc29aaf3aa9480274512f1a628fd283756827ab Mon Sep 17 00:00:00 2001 From: "Hey, I'm Artem!" <155821867+artfreelans@users.noreply.github.com> Date: Sun, 25 Jan 2026 14:45:17 +0200 Subject: [PATCH 05/10] Create cpython.ipynb Signed-off-by: Hey, I'm Artem! <155821867+artfreelans@users.noreply.github.com> --- python/cpython.ipynb | 1 + 1 file changed, 1 insertion(+) create mode 100644 python/cpython.ipynb diff --git a/python/cpython.ipynb b/python/cpython.ipynb new file mode 100644 index 00000000..d00491fd --- /dev/null +++ b/python/cpython.ipynb @@ -0,0 +1 @@ +1 From 9668ac1c85b310100200a5c078da7a15e79bc689 Mon Sep 17 00:00:00 2001 From: "Hey, I'm Artem!" <155821867+artfreelans@users.noreply.github.com> Date: Fri, 30 Jan 2026 17:31:46 +0200 Subject: [PATCH 06/10] Create python.ipynb Signed-off-by: Hey, I'm Artem! <155821867+artfreelans@users.noreply.github.com> --- python/python.ipynb | 1 + 1 file changed, 1 insertion(+) create mode 100644 python/python.ipynb diff --git a/python/python.ipynb b/python/python.ipynb new file mode 100644 index 00000000..d00491fd --- /dev/null +++ b/python/python.ipynb @@ -0,0 +1 @@ +1 From 547bb3d108f83abe68fcc193a79bf171b2fe13a2 Mon Sep 17 00:00:00 2001 From: "Hey, I'm Artem!" <155821867+artfreelans@users.noreply.github.com> Date: Fri, 30 Jan 2026 19:27:35 +0200 Subject: [PATCH 07/10] =?UTF-8?q?=D0=A3=D0=B4=D0=B0=D0=BB=D0=B8=D0=BB=20?= =?UTF-8?q?=D0=BE=D1=88=D0=B8=D0=B1=D0=BE=D1=87=D0=BD=D0=BE=20=D1=81=D0=BE?= =?UTF-8?q?=D0=B7=D0=B4=D0=B0=D0=BD=D0=BD=D1=8B=D0=B5=20=D1=84=D0=B0=D0=B9?= =?UTF-8?q?=D0=BB=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Hey, I'm Artem! <155821867+artfreelans@users.noreply.github.com> --- python/cpython.ipynb | 1 - python/python.ipynb | 1 - 2 files changed, 2 deletions(-) delete mode 100644 python/cpython.ipynb delete mode 100644 python/python.ipynb diff --git a/python/cpython.ipynb b/python/cpython.ipynb deleted file mode 100644 index d00491fd..00000000 --- a/python/cpython.ipynb +++ /dev/null @@ -1 +0,0 @@ -1 diff --git a/python/python.ipynb b/python/python.ipynb deleted file mode 100644 index d00491fd..00000000 --- a/python/python.ipynb +++ /dev/null @@ -1 +0,0 @@ -1 From 55c33f2246c87c624469378102b4ec48c1d6ab55 Mon Sep 17 00:00:00 2001 From: "Hey, I'm Artem!" Date: Sat, 31 Jan 2026 00:32:01 +0200 Subject: [PATCH 08/10] Cpython #4 (https://github.com/SENATOROVAI/intro-cs/issues/4) Closes https://github.com/SENATOROVAI/intro-cs/issues/4 --- pytnon/cpython.ipynb | 183 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 183 insertions(+) create mode 100644 pytnon/cpython.ipynb diff --git a/pytnon/cpython.ipynb b/pytnon/cpython.ipynb new file mode 100644 index 00000000..2834982f --- /dev/null +++ b/pytnon/cpython.ipynb @@ -0,0 +1,183 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "f17c72ad", + "metadata": { + "vscode": { + "languageId": "plaintext" + } + }, + "outputs": [], + "source": [ + "\"\"\"Квиз 4.\"\"\"" + ] + }, + { + "cell_type": "markdown", + "id": "df42dff7", + "metadata": {}, + "source": [ + "\n", + "\n", + "1. Что такое CPython и чем он отличается от Python?\n", + "CPython это реализация языка Python. Python - это концепция, CPython - программа исполняющая код. Python описывает for, if, Функции. CPython - интерпретирует их.\n", + "3. Сколько существует реализаций Python, и какая из них самая популярная?\n", + "6, CPython\n", + "4. На каком языке написан CPython?\n", + "На языке C \n", + "\n", + "5. (опционально) Кто создал CPython?\n", + "Гвидо ван Россум\n", + "6. Почему Python считается быстрым, несмотря на то, что это интерпретируемый язык?\n", + "Потому что ядро написанно на C, и инструкции он вызывает из С\n", + "7. Напишите путь к Интерпретатору CPython на вашем компьютере\n", + "C:\\Users\\artfr\\AppData\\Local\\Python\\pythoncore-3.14-64\n", + "\n", + "8. Что содержится в папке include в CPython?\n", + "Файлы заголовков CPython содержащие информацию, которая нужна для взаимодействия с интерпретатором Python из кода на языках C и C++\n", + "9. Где можно найти исходный код CPython дайте ссылку на репозиторий гитхаб\n", + "https://github.com/python/cpython\n", + "10. (опционально) Как работает интерпретатор CPython при выполнении кода?\n", + "\n", + "\n", + "11. Какая команда используется для запуска файла с помощью CPython?\n", + "python <путь_до_файла>\\<название_файла>.py\n", + "\n", + "12. Можно ли запускать текстовые файлы через интерпретатор Python? Почему?\n", + "Да. Потому что интерпретатору не важно какое расширение файла. \n", + "13. Как указать путь к интерпретатору и файлу для выполнения кода?\n", + "Находи через поиск интерепретатор по слову python -> перейти к расположение объекта -> в верхней строке окна копируем путь. ЛИБО свойста файла -> в окне будет заголовок \"расположение объекта\"\n", + "14. Чем PyPy отличается от CPython?\n", + "PyPy работает в 10 раз быстрее, чем пайтон. PyPy реализован в Rpython\n", + "15. Почему PyPy не может использоваться для всех проектов на Python?\n", + "Он достаточно новый и несовместим со всеми проектами.\n", + "16. Где можно скачать PyPy?\n", + "https://pypy.org\n", + "\n", + "17. Как установить PyPy после скачивания?\n", + "Переходим на сайт, выбираем свою операционку, скачиваем и распаковываем в удобное место.\n", + "18. Как запустить файл с помощью PyPy?\n", + "Копируем путь до интерпретатора PyPy + добавляем полное имя с рашсиреним - вставляем в CMD и добавляем путь до файла, который нужно запустить\n", + "19. Почему PyPy выполняет код быстрее, чем CPython?\n", + "Благодаря компиляции «точно в срок» (just-in-time, JIT-компиляции). \n", + "CPython компилирует Python в промежуточный байт-код, который затем интерпретируется виртуальной машиной. PyPy же переводит код Python в машинный код непосредственно перед его выполнением. " + ] + }, + { + "cell_type": "markdown", + "id": "4d4fec49", + "metadata": {}, + "source": [ + "Задание 1: Поиск и установка CPython\n", + "\n", + "Проверьте, установлен ли CPython на вашем компьютере:\n", + " Используйте поиск в меню \"Пуск\" (Windows) или терминале (Linux/Mac).\n", + " Введите команду python --version или python3 --version в терминале.\n", + "Если CPython не установлен, скачайте его с официального сайта Python https://www.python.org/downloads/ и установите.\n", + "\n", + "ОТВЕТ\n", + "C:\\Users\\artfr>python --version\n", + "Python 3.7.4\n" + ] + }, + { + "cell_type": "markdown", + "id": "c65a636f", + "metadata": {}, + "source": [ + "Задание 2: Исследование структуры CPython\n", + "Найдите папку, где установлен Python (например, через команду where python в терминале или свойства ярлыка).\n", + "Откройте папку include и изучите её содержимое. Какое количество файлов на C там есть?\n", + "\n", + "ОТВЕТ\n", + "Две папка cpython и internal и 79 файлов с расширением .h - если я правильно понял, что .h - это файл на C\n", + "\n", + "\n", + "Перейдите на [GitHub-репозиторий CPython](https://github.com/python/cpython) и найдите файл README. Прочитайте информацию о проекте. \n", + "ПРОЧИТАЛ\n" + ] + }, + { + "cell_type": "markdown", + "id": "7225678a", + "metadata": {}, + "source": [ + "Задание 3: Запуск файла с помощью CPython\n", + "Создайте текстовый файл example.txt с содержимым:\n", + "print(\"Hello from CPython!\")\n", + "\n", + "Запустите файл через команду python <путь_до_файла> (замените <путь_до_файла> на фактический путь к вашему файлу).\n", + "Проверьте, что выводится на экран. Попробуйте изменить расширение файла на .py и повторите запуск.\n", + "\n", + "ОТВЕТ\n", + "C:\\Users\\artfr>python c:\\example.txt\n", + "Hello from CPython!\n", + "\n", + "C:\\Users\\artfr>python c:\\example.py\n", + "Hello from CPython!" + ] + }, + { + "cell_type": "markdown", + "id": "d21d09cf", + "metadata": {}, + "source": [ + "Задание 4: Установка и использование PyPy\n", + "Перейдите на [официальный сайт PyPy](https://www.pypy.org/) и скачайте подходящую версию для вашей операционной системы.\n", + "Распакуйте скачанный архив в удобное место.\n", + "Создайте файл example_pypy.py с кодом:\n", + "print(\"Hello from pypy!\")\n", + "\n", + "Запустите файл через PyPy\n", + "pypy <путь_до_файла> (замените <путь_до_файла> на фактический путь к вашему файлу).\n", + "Проверьте, что выводится на экран. Попробуйте изменить расширение файла на .py и повторите запуск.\n", + "\n", + "ОТВЕТ\n", + "C:\\Users\\artfr>C:\\Users\\artfr\\machine_learning\\pypy3.11-v7.3.20-win64\\python.exe C:\\Users\\artfr\\machine_learning\\example_pypy.py\n", + "Hello from pypy!\n", + "\n", + "C:\\Users\\artfr>C:\\Users\\artfr\\machine_learning\\pypy3.11-v7.3.20-win64\\python.exe C:\\Users\\artfr\\machine_learning\\example_pypy.txt\n", + "Hello from pypy!" + ] + }, + { + "cell_type": "markdown", + "id": "35e28317", + "metadata": {}, + "source": [ + "Задание 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", + " \n", + "Запустите этот файл сначала через CPython, а затем через PyPy. Запишите результаты времени выполнения для обоих интерпретаторов.\n", + "Сделайте вывод о разнице в производительности.\n", + "\n", + "ОТВЕТ\n", + "python \n", + "Result: 49999995000000\n", + "Execution time: 3.628202438354492 seconds\n", + "\n", + "PYPY\n", + "Result: 49999995000000\n", + "Execution time: 0.1406388282775879 seconds" + ] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From 19f46fa01e478d89b23de2ad596affb8ae517093 Mon Sep 17 00:00:00 2001 From: "Hey, I'm Artem!" Date: Sat, 31 Jan 2026 00:45:06 +0200 Subject: [PATCH 09/10] Cpython #4 (https://github.com/SENATOROVAI/intro-cs/issues/4) Closes https://github.com/SENATOROVAI/intro-cs/issues/4 --- pytnon/cpython.ipynb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pytnon/cpython.ipynb b/pytnon/cpython.ipynb index 2834982f..da48c27d 100644 --- a/pytnon/cpython.ipynb +++ b/pytnon/cpython.ipynb @@ -21,7 +21,7 @@ "source": [ "\n", "\n", - "1. Что такое CPython и чем он отличается от Python?\n", + "1.Что такое CPython и чем он отличается от Python?\n", "CPython это реализация языка Python. Python - это концепция, CPython - программа исполняющая код. Python описывает for, if, Функции. CPython - интерпретирует их.\n", "3. Сколько существует реализаций Python, и какая из них самая популярная?\n", "6, CPython\n", From 0fa853aa1669517ea0b6fbe0134d89061c0e5c9e Mon Sep 17 00:00:00 2001 From: "Hey, I'm Artem!" Date: Sat, 31 Jan 2026 00:52:56 +0200 Subject: [PATCH 10/10] Cpython #4 (https://github.com/SENATOROVAI/intro-cs/issues/4) Closes https://github.com/SENATOROVAI/intro-cs/issues/4 --- pytnon/cpython.py | 125 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 125 insertions(+) create mode 100644 pytnon/cpython.py diff --git a/pytnon/cpython.py b/pytnon/cpython.py new file mode 100644 index 00000000..278662c9 --- /dev/null +++ b/pytnon/cpython.py @@ -0,0 +1,125 @@ +"""Квиз 4.""" + +# +# +# 1.Что такое CPython и чем он отличается от Python? +# CPython это реализация языка Python. Python - это концепция, CPython - программа исполняющая код. Python описывает for, if, Функции. CPython - интерпретирует их. +# 3. Сколько существует реализаций Python, и какая из них самая популярная? +# 6, CPython +# 4. На каком языке написан CPython? +# На языке C +# +# 5. (опционально) Кто создал CPython? +# Гвидо ван Россум +# 6. Почему Python считается быстрым, несмотря на то, что это интерпретируемый язык? +# Потому что ядро написанно на C, и инструкции он вызывает из С +# 7. Напишите путь к Интерпретатору CPython на вашем компьютере +# C:\Users\artfr\AppData\Local\Python\pythoncore-3.14-64 +# +# 8. Что содержится в папке include в CPython? +# Файлы заголовков CPython содержащие информацию, которая нужна для взаимодействия с интерпретатором Python из кода на языках C и C++ +# 9. Где можно найти исходный код CPython дайте ссылку на репозиторий гитхаб +# https://github.com/python/cpython +# 10. (опционально) Как работает интерпретатор CPython при выполнении кода? +# +# +# 11. Какая команда используется для запуска файла с помощью CPython? +# python <путь_до_файла>\<название_файла>.py +# +# 12. Можно ли запускать текстовые файлы через интерпретатор Python? Почему? +# Да. Потому что интерпретатору не важно какое расширение файла. +# 13. Как указать путь к интерпретатору и файлу для выполнения кода? +# Находи через поиск интерепретатор по слову python -> перейти к расположение объекта -> в верхней строке окна копируем путь. ЛИБО свойста файла -> в окне будет заголовок "расположение объекта" +# 14. Чем PyPy отличается от CPython? +# PyPy работает в 10 раз быстрее, чем пайтон. PyPy реализован в Rpython +# 15. Почему PyPy не может использоваться для всех проектов на Python? +# Он достаточно новый и несовместим со всеми проектами. +# 16. Где можно скачать PyPy? +# https://pypy.org +# +# 17. Как установить PyPy после скачивания? +# Переходим на сайт, выбираем свою операционку, скачиваем и распаковываем в удобное место. +# 18. Как запустить файл с помощью PyPy? +# Копируем путь до интерпретатора PyPy + добавляем полное имя с рашсиреним - вставляем в CMD и добавляем путь до файла, который нужно запустить +# 19. Почему PyPy выполняет код быстрее, чем CPython? +# Благодаря компиляции «точно в срок» (just-in-time, JIT-компиляции). +# CPython компилирует Python в промежуточный байт-код, который затем интерпретируется виртуальной машиной. PyPy же переводит код Python в машинный код непосредственно перед его выполнением. + +# Задание 1: Поиск и установка CPython +# +# Проверьте, установлен ли CPython на вашем компьютере: +# Используйте поиск в меню "Пуск" (Windows) или терминале (Linux/Mac). +# Введите команду python --version или python3 --version в терминале. +# Если CPython не установлен, скачайте его с официального сайта Python https://www.python.org/downloads/ и установите. +# +# ОТВЕТ +# C:\Users\artfr>python --version +# Python 3.7.4 +# + +# Задание 2: Исследование структуры CPython +# Найдите папку, где установлен Python (например, через команду where python в терминале или свойства ярлыка). +# Откройте папку include и изучите её содержимое. Какое количество файлов на C там есть? +# +# ОТВЕТ +# Две папка cpython и internal и 79 файлов с расширением .h - если я правильно понял, что .h - это файл на C +# +# +# Перейдите на [GitHub-репозиторий CPython](https://github.com/python/cpython) и найдите файл README. Прочитайте информацию о проекте. +# ПРОЧИТАЛ +# + +# Задание 3: Запуск файла с помощью CPython +# Создайте текстовый файл example.txt с содержимым: +# print("Hello from CPython!") +# +# Запустите файл через команду python <путь_до_файла> (замените <путь_до_файла> на фактический путь к вашему файлу). +# Проверьте, что выводится на экран. Попробуйте изменить расширение файла на .py и повторите запуск. +# +# ОТВЕТ +# C:\Users\artfr>python c:\example.txt +# Hello from CPython! +# +# C:\Users\artfr>python c:\example.py +# Hello from CPython! + +# Задание 4: Установка и использование PyPy +# Перейдите на [официальный сайт PyPy](https://www.pypy.org/) и скачайте подходящую версию для вашей операционной системы. +# Распакуйте скачанный архив в удобное место. +# Создайте файл example_pypy.py с кодом: +# print("Hello from pypy!") +# +# Запустите файл через PyPy +# pypy <путь_до_файла> (замените <путь_до_файла> на фактический путь к вашему файлу). +# Проверьте, что выводится на экран. Попробуйте изменить расширение файла на .py и повторите запуск. +# +# ОТВЕТ +# C:\Users\artfr>C:\Users\artfr\machine_learning\pypy3.11-v7.3.20-win64\python.exe C:\Users\artfr\machine_learning\example_pypy.py +# Hello from pypy! +# +# C:\Users\artfr>C:\Users\artfr\machine_learning\pypy3.11-v7.3.20-win64\python.exe C:\Users\artfr\machine_learning\example_pypy.txt +# Hello from pypy! + +# Задание 5: Сравнение производительности CPython и PyPy +# Создайте файл performance_test.py с кодом: +# import time +# start_time = time.time() +# total = 0 +# for i in range(1, 10000000): +# total += i +# end_time = time.time() +# +# print("Result:", total) +# print("Execution time:", end_time - start_time, "seconds") +# +# Запустите этот файл сначала через CPython, а затем через PyPy. Запишите результаты времени выполнения для обоих интерпретаторов. +# Сделайте вывод о разнице в производительности. +# +# ОТВЕТ +# python +# Result: 49999995000000 +# Execution time: 3.628202438354492 seconds +# +# PYPY +# Result: 49999995000000 +# Execution time: 0.1406388282775879 seconds