Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
# Для задание из issue 7 Venv
/SENATOROV

# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
Expand Down
122 changes: 122 additions & 0 deletions Python/cpython.ipynb
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"id": "374fe137",
"metadata": {
"vscode": {
"languageId": "plaintext"
}
},
"outputs": [],
"source": [
"\"\"\"\n",
"Issue #4 Cpython.\n",
"\n",
"https://github.com/SENATOROVAI/intro-cs/issues/4\n",
"\"\"\""
]
},
{
"cell_type": "markdown",
"id": "a9093402",
"metadata": {},
"source": [
"1. Что такое CPython и чем он отличается от Python?\n",
"Это реализация языка Python на C.\n",
"Python - это язык, синтаксис, набор правил и стандартов, описывающих то, как работает язык, основные конструкции, функции и пр.\n",
"CPython - это программа, которая исполняет код, написанный на языке Python\n",
"\n",
"3. Сколько существует реализаций Python, и какая из них самая популярная?\n",
"В видео говорится про шесть. Но есть и другие реализации.\n",
"\n",
"4. На каком языке написан CPython?\n",
"C\n",
"\n",
"5. (опционально) Кто создал CPython?\n",
"Guido van Rossum\n",
"\n",
"6. Почему Python считается быстрым, несмотря на то, что это интерпретируемый язык?\n",
"Потому что написан на C. А язык C считается быстрым языком.\n",
"\n",
"7. Напишите путь к Интерпретатору CPython на вашем компьютере\n",
"C:\\Program Files\\Python313\\python.exe\n",
"\n",
"8. Что содержится в папке include в CPython?\n",
"Файлы, написанные на C. Те же самые, что и в репозитории CPython.\n",
"\n",
"9. Где можно найти исходный код CPython дайте ссылку на репозиторий гитхаб\n",
"https://github.com/python/cpython\n",
"\n",
"10. Как работает интерпретатор CPython при выполнении кода?\n",
"Выполняет программу построчно.\n",
"\n",
"Лексический анализ и парсинг преобразует исходный код в AST (Abstract Syntax Tree).\n",
"Компиляция в байт-код - AST компилируется в .pyc файлы (байт-код).\n",
"Интерпретация байт-кода - виртуальная машина CPython (PVM) выполняет байт-код построчно.\n",
"В отличие от PyPy, CPython не использует JIT-компиляцию — поэтому он медленнее, но стабильнее и совместимее\n",
"\n",
"11. Какая команда используется для запуска файла с помощью CPython?\n",
"python\n",
"\n",
"12. Можно ли запускать текстовые файлы через интерпретатор Python? Почему?\n",
"Можно. Интерпретатору все равно, какое расширение у файла.\n",
"\n",
"13. Как указать путь к интерпретатору и файлу для выполнения кода?\n",
"Через пробел. Например:\n",
"C:\\Program Files\\Python313\\python.exe C:\\project.txt \n",
"\n",
"14. Чем PyPy отличается от CPython?\n",
"PyPy гораздо быстрее, чем CPython (до 10 раз быстрее)\n",
"\n",
"15. Почему PyPy не может использоваться для всех проектов на Python?\n",
"PyPy достаточно новый и совместим не со всеми проектами.\n",
"\n",
"16. Где можно скачать PyPy?\n",
"https://pypy.org\n",
"\n",
"17. Как установить PyPy после скачивания?\n",
"Распаковать архив, использовать путь до файла pypy.exe / python.exe (или файлов с другими версиями интерпретатора) для запуска файлов.\n",
"Можно добавить путь к файлу в переменные окружения.\n",
"\n",
"18. Как запустить файл с помощью PyPy?\n",
"В командной строке или терминале набрать:\n",
"путь_к_интерпретатору путь_к_файлу\n",
"\n",
"19. Почему PyPy выполняет код быстрее, чем CPython?\n",
"PyPy использует JIT-компиляцию (Just-In-Time):\n",
"Он кэширует часто выполняемые участи кода, компилирует их в машинный код. В следующий раз этот код выполняется напрямую процессором.\n",
"\n",
"Практические задания\n",
"\n",
"Задание 1: Поиск и установка CPython\n",
"Установлен Python 3.13.3\n",
"\n",
"Задание 2: Исследование структуры CPython\n",
"В папке include 77 файлов *.h\n",
"\n",
"Задание 3: Запуск файла с помощью CPython\n",
"Файл запускается независимо от расширения\n",
"\n",
"Задание 4: Установка и использование PyPy\n",
"На экран выводится \"Hello from pypy!\" независимо от расширения\n",
"\n",
"Задание 5: Сравнение производительности CPython и PyPy\n",
"При использовании CPython время выполнения составило:\n",
"Execution time: 0.49318480491638184 seconds\n",
"\n",
"При использовании PyPy время выполнения составило:\n",
"Execution time: 0.008015632629394531 seconds\n",
"Что более чем в 60 раз быстрее"
]
}
],
"metadata": {
"language_info": {
"name": "python"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
91 changes: 91 additions & 0 deletions Python/cpython.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
"""Issue #4 Cpython.

https://github.com/SENATOROVAI/intro-cs/issues/4
"""

# 1. Что такое CPython и чем он отличается от Python?
# Это реализация языка Python на C.
# Python - это язык, синтаксис, набор правил и стандартов, описывающих то, как работает язык, основные конструкции, функции и пр.
# CPython - это программа, которая исполняет код, написанный на языке Python
#
# 3. Сколько существует реализаций Python, и какая из них самая популярная?
# В видео говорится про шесть. Но есть и другие реализации.
#
# 4. На каком языке написан CPython?
# C
#
# 5. (опционально) Кто создал CPython?
# Guido van Rossum
#
# 6. Почему Python считается быстрым, несмотря на то, что это интерпретируемый язык?
# Потому что написан на C. А язык C считается быстрым языком.
#
# 7. Напишите путь к Интерпретатору CPython на вашем компьютере
# C:\Program Files\Python313\python.exe
#
# 8. Что содержится в папке include в CPython?
# Файлы, написанные на C. Те же самые, что и в репозитории CPython.
#
# 9. Где можно найти исходный код CPython дайте ссылку на репозиторий гитхаб
# https://github.com/python/cpython
#
# 10. Как работает интерпретатор CPython при выполнении кода?
# Выполняет программу построчно.
#
# Лексический анализ и парсинг преобразует исходный код в AST (Abstract Syntax Tree).
# Компиляция в байт-код - AST компилируется в .pyc файлы (байт-код).
# Интерпретация байт-кода - виртуальная машина CPython (PVM) выполняет байт-код построчно.
# В отличие от PyPy, CPython не использует JIT-компиляцию — поэтому он медленнее, но стабильнее и совместимее
#
# 11. Какая команда используется для запуска файла с помощью CPython?
# python
#
# 12. Можно ли запускать текстовые файлы через интерпретатор Python? Почему?
# Можно. Интерпретатору все равно, какое расширение у файла.
#
# 13. Как указать путь к интерпретатору и файлу для выполнения кода?
# Через пробел. Например:
# C:\Program Files\Python313\python.exe C:\project.txt
#
# 14. Чем PyPy отличается от CPython?
# PyPy гораздо быстрее, чем CPython (до 10 раз быстрее)
#
# 15. Почему PyPy не может использоваться для всех проектов на Python?
# PyPy достаточно новый и совместим не со всеми проектами.
#
# 16. Где можно скачать PyPy?
# https://pypy.org
#
# 17. Как установить PyPy после скачивания?
# Распаковать архив, использовать путь до файла pypy.exe / python.exe (или файлов с другими версиями интерпретатора) для запуска файлов.
# Можно добавить путь к файлу в переменные окружения.
#
# 18. Как запустить файл с помощью PyPy?
# В командной строке или терминале набрать:
# путь_к_интерпретатору путь_к_файлу
#
# 19. Почему PyPy выполняет код быстрее, чем CPython?
# PyPy использует JIT-компиляцию (Just-In-Time):
# Он кэширует часто выполняемые участи кода, компилирует их в машинный код. В следующий раз этот код выполняется напрямую процессором.
#
# Практические задания
#
# Задание 1: Поиск и установка CPython
# Установлен Python 3.13.3
#
# Задание 2: Исследование структуры CPython
# В папке include 77 файлов *.h
#
# Задание 3: Запуск файла с помощью CPython
# Файл запускается независимо от расширения
#
# Задание 4: Установка и использование PyPy
# На экран выводится "Hello from pypy!" независимо от расширения
#
# Задание 5: Сравнение производительности CPython и PyPy
# При использовании CPython время выполнения составило:
# Execution time: 0.49318480491638184 seconds
#
# При использовании PyPy время выполнения составило:
# Execution time: 0.008015632629394531 seconds
# Что более чем в 60 раз быстрее
Loading
Loading