[TASK] Cpython #4 (https://github.com/SENATOROVAI/intro-cs/issues/4)#585
Closed
kycb322 wants to merge 1 commit intoSENATOROVAI:mainfrom
Closed
[TASK] Cpython #4 (https://github.com/SENATOROVAI/intro-cs/issues/4)#585kycb322 wants to merge 1 commit intoSENATOROVAI:mainfrom
kycb322 wants to merge 1 commit intoSENATOROVAI:mainfrom
Conversation
kycb322
commented
Mar 4, 2026
Comment on lines
+1
to
+138
| """Cpython #4.""" | ||
|
|
||
| # 'CPython' | ||
| # | ||
| # Список вопросов к видео https://www.youtube.com/watch?v=ooLcXygrLnU | ||
| # | ||
| # Введение в Python и CPython | ||
| # | ||
| # 1. Что такое CPython и чем он отличается от Python? | ||
| # Python — это язык программирования (набор правил, синтаксиса и возможностей), а CPython — это конкретная реализация этого языка, то есть интерпретатор, написанный на языке C. | ||
| # 3. Сколько существует реализаций Python, и какая из них самая популярная? | ||
| # Существует более 5 основных реализаций Python, каждая из которых предназначена для разных целей.Самой популярной и стандартной является CPython. | ||
| # 4. На каком языке написан CPython? | ||
| # На языке C. | ||
| # | ||
| # Поиск и установка CPython | ||
| # | ||
| # 5. (опционально) Кто создал CPython? | ||
| # CPython создал голландский программист Гвидо ван Россум (Guido van Rossum). | ||
| # 6. Почему Python считается быстрым, несмотря на то, что это интерпретируемый язык? | ||
| # Когда Python называют "быстрым" языком имеют ввиду по скорость разработки и прототипирования на этом языке программирования. | ||
| # 7. Напишите путь к Интерпретатору CPython на вашем компьютере | ||
| # C:\Users\MIXERushka\AppData\Local\Programs\Python\Python313\python.exe | ||
| # | ||
| # Структура CPython | ||
| # | ||
| # 8. Что содержится в папке include в CPython? | ||
| # В папке include находятся заголовочные файлы (.h), необходимые для сборки C‑расширений и взаимодействия с C‑кодом. | ||
| # 9. Где можно найти исходный код CPython дайте ссылку на репозиторий гитхаб | ||
| # https://github.com/python/cpython | ||
| # 10. (опционально) Как работает интерпретатор CPython при выполнении кода? | ||
| # Интерпретатор CPython работает в несколько этапов: он считывает код на Python, превращает его в байт‑код, а затем пошагово выполняет этот байт‑код во встроенной виртуальной машине. | ||
| # | ||
| # Запуск файла с помощью CPython | ||
| # | ||
| # 11. Какая команда используется для запуска файла с помощью CPython? | ||
| # python имя_файла.py | ||
| # | ||
| # 12. Можно ли запускать текстовые файлы через интерпретатор Python? Почему? | ||
| # Интерпретатор Python не может просто так запустить произвольный текстовый файл как скрипт, потому что Python‑интерпретатор понимает файл как скрипт, только если в нём записан корректный код на Python: правильный синтаксис, отступы, допустимые операторы и выражения. | ||
| # 13. Как указать путь к интерпретатору и файлу для выполнения кода? | ||
| # <путь_к_интерпретатору> <путь_к_файлу>.py | ||
| # | ||
| # Введение в PyPy | ||
| # | ||
| # 14. Чем PyPy отличается от CPython? | ||
| # PyPy и CPython — это разные «версии» интерпретатора Python, главное различие между ними — как именно они выполняют ваш код. CPython сначала переводит Python‑код в байт‑код, а потом последовательно выполняет его, что делает его надёжным и хорошо совместимым со многими библиотеками, но не очень быстрым. PyPy работает иначе: он использует JIT‑компилятор, который читает запускающийся код, находит участки, которые выполняются часто (например, циклы), и превращает их в более быстрый машинный код. Благодаря этому PyPy может существенно ускорить задачи, которые много считают или долго обрабатывают данные. | ||
| # 15. Почему PyPy не может использоваться для всех проектов на Python? | ||
| # PyPy не может использоваться для всех проектов на Python в первую очередь из‑за ограничений по совместимости. Многие популярные библиотеки (например, NumPy, pandas, SciPy) опираются на C‑расширения, которые либо не работают корректно в PyPy, либо могут работать даже медленнее, чем в CPython. | ||
| # 16. Где можно скачать PyPy? | ||
| # https://pypy.org/download.html | ||
| # | ||
| # Установка и запуск PyPy | ||
| # | ||
| # 17. Как установить PyPy после скачивания? | ||
| # Распакуйте архив в удобную папку, добавить эту папку в PATH. | ||
| # 18. Как запустить файл с помощью PyPy? | ||
| # После скачивания PyPy его распаковывают и подключают к PATH или используют сразу из папки. | ||
| # 19. Почему PyPy выполняет код быстрее, чем CPython? | ||
| # PyPy выполняет код быстрее, чем CPython, потому что он использует JIT‑компилятор (Just‑In‑Time), а не простую интерпретацию байт‑кода, CPython пошагово выполняет байт‑код, и на каждую операцию накладываются накладные расходы интерпретатора, из‑за чего выполнение получается относительно медленным. PyPy же анализирует, какие участки кода выполняются часто («горячие циклы, функции»), и компилирует их в нативный машинный код, который работает почти как программа, написанная на C или C++. | ||
| # | ||
| # | ||
| # Практические задания | ||
| # | ||
| # Задание 1: Поиск и установка CPython | ||
| # | ||
| # Проверьте, установлен ли CPython на вашем компьютере: | ||
| # Используйте поиск в меню "Пуск" (Windows) или терминале (Linux/Mac). | ||
| # Введите команду python --version или python3 --version в терминале. | ||
| # Если CPython не установлен, скачайте его с официального сайта Python https://www.python.org/downloads/ и установите. | ||
| # | ||
| # Output: Python 3.13.12 | ||
| # | ||
| # Задание 2: Исследование структуры CPython | ||
| # | ||
| # Найдите папку, где установлен Python (например, через команду where python в терминале или свойства ярлыка). | ||
| # Откройте папку include и изучите её содержимое. Какое количество файлов на C там есть? | ||
| # Перейдите на [GitHub-репозиторий CPython](https://github.com/python/cpython) и найдите файл README. Прочитайте информацию о проекте. | ||
| # | ||
| # 264 | ||
| # | ||
| # Задание 3: Запуск файла с помощью CPython | ||
| # | ||
| # Создайте текстовый файл example.txt с содержимым: | ||
| # | ||
| # print("Hello from CPython!") | ||
| # | ||
| # Запустите файл через команду python <путь_до_файла> (замените <путь_до_файла> на фактический путь к вашему файлу). | ||
| # | ||
| # Проверьте, что выводится на экран. Попробуйте изменить расширение файла на .py и повторите запуск. | ||
| # | ||
| # Output файла .txt: Пустая строка | ||
| # Output файла .py: Hello from CPython! | ||
| # | ||
| # Задание 4: Установка и использование PyPy | ||
| # | ||
| # Перейдите на [официальный сайт PyPy](https://www.pypy.org/) и скачайте подходящую версию для вашей операционной системы. | ||
| # Распакуйте скачанный архив в удобное место. | ||
| # Создайте файл example_pypy.py с кодом: | ||
| # | ||
| # print("Hello from pypy!") | ||
| # | ||
| # Запустите файл через PyPy | ||
| # pypy <путь_до_файла> (замените <путь_до_файла> на фактический путь к вашему файлу). | ||
| # Проверьте, что выводится на экран. Попробуйте изменить расширение файла на .py и повторите запуск. | ||
| # | ||
| # Output: 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. Запишите результаты времени выполнения для обоих интерпретаторов. | ||
| # Сделайте вывод о разнице в производительности. | ||
| # | ||
| # CPython: C:\Users\MIXERushka>python C:\123\performance_test.py | ||
| # Result: 49999995000000 | ||
| # Execution time: 0.6424880027770996 seconds | ||
| # | ||
| # | ||
| # pypy: C:\Users\MIXERushka>pypy C:\123\performance_test.py | ||
| # Result: 49999995000000 | ||
| # Execution time: 0.00852346420288086 seconds | ||
| # | ||
| # Вывод:PyPy выполняет этот код быстрее CPython благодаря JIT-компилятору (Just-In-Time). В цикле с 10 млн итераций PyPy анализирует код, оптимизирует его и компилирует в машинный код, что ускоряет выполнение в 75.38 раза. JIT-компилятор работает поэтапно во время выполнения программы. | ||
| # Сначала код интерпретируется как байт-код (медленно). JIT отслеживает "горячие" участки (часто вызываемые циклы/функции), собирает статистику о их использовании. | ||
| # Затем компилирует их в оптимизированный машинный код под CPU (встраивает функции, убирает проверки типов) и кэширует для повторного быстрого запуска. | ||
| # CPython использует интерпретацию байт-кода без JIT, тратя время на каждую инструкцию, поэтому работает медленнее на таких циклах. |
Member
|
review done |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes https://github.com/SENATOROVAI/intro-cs/issues/4