Skip to content

Commit a4516ae

Browse files
committed
1 parent 67ca237 commit a4516ae

8 files changed

Lines changed: 557 additions & 1317 deletions

File tree

log.ipynb

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,13 +42,15 @@
4242
"2. Пересмотрены по несколько раз видео:\n",
4343
" https://www.youtube.com/watch?v=Si9MfV8uJ-0\n",
4444
" https://www.youtube.com/watch?si=tCEVs00xGt2q61eW&v=hW_7hodGxVU&feature=youtu.be\n",
45-
"3. Изучаю курс по пайтону шаг https://stepik.org/lesson/1711495/step/7?unit=1734919\n"
45+
"3. Изучаю курс по пайтону шаг https://stepik.org/lesson/1711495/step/7?unit=1734919\n",
46+
"4. https://github.com/SENATOROVAI/intro-cs/issues/6 - сделал пулл\n",
47+
"5. https://github.com/SENATOROVAI/intro-cs/issues/4 - сделал пулл\n"
4648
]
4749
}
4850
],
4951
"metadata": {
5052
"kernelspec": {
51-
"display_name": "Python 3",
53+
"display_name": ".venv",
5254
"language": "python",
5355
"name": "python3"
5456
},
@@ -62,7 +64,7 @@
6264
"name": "python",
6365
"nbconvert_exporter": "python",
6466
"pygments_lexer": "ipython3",
65-
"version": "3.10.11"
67+
"version": "3.11.9"
6668
}
6769
},
6870
"nbformat": 4,

log.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,6 @@
1212
# https://www.youtube.com/watch?v=Si9MfV8uJ-0
1313
# https://www.youtube.com/watch?si=tCEVs00xGt2q61eW&v=hW_7hodGxVU&feature=youtu.be
1414
# 3. Изучаю курс по пайтону шаг https://stepik.org/lesson/1711495/step/7?unit=1734919
15+
# 4. https://github.com/SENATOROVAI/intro-cs/issues/6 - сделал пулл
16+
# 5. https://github.com/SENATOROVAI/intro-cs/issues/4 - сделал пулл
1517
#

python/cpython.ipynb

Lines changed: 304 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,304 @@
1+
{
2+
"cells": [
3+
{
4+
"cell_type": "code",
5+
"execution_count": null,
6+
"id": "61a1c252",
7+
"metadata": {
8+
"vscode": {
9+
"languageId": "plaintext"
10+
}
11+
},
12+
"outputs": [],
13+
"source": [
14+
"\"\"\"Квиз и практика по пайтон.\"\"\""
15+
]
16+
},
17+
{
18+
"cell_type": "markdown",
19+
"id": "987ba122",
20+
"metadata": {},
21+
"source": [
22+
"1. Что такое CPython и чем он отличается от Python?\n",
23+
"\n",
24+
"Ответ:\n",
25+
"\n",
26+
"CPython — стандартная реализация Python на языке C. Это та версия, которую обычно скачивают с python.org.\n",
27+
"\n",
28+
"Разница:\n",
29+
"Python — язык программирования (спецификация)\n",
30+
"CPython — реализация этого языка на C\n",
31+
"\n",
32+
"\n",
33+
"2. Сколько существует реализаций Python, и какая из них самая популярная?\n",
34+
"\n",
35+
"Ответ:\n",
36+
"\n",
37+
"6 реализаций \n",
38+
"CPython - самая популярная\n",
39+
"\n",
40+
"\n",
41+
"4. На каком языке написан CPython?\n",
42+
"\n",
43+
"Ответ:\n",
44+
"\n",
45+
"Язык С\n",
46+
"\n",
47+
"\n",
48+
"5. (опционально) Кто создал CPython?\n",
49+
"\n",
50+
"Ответ:\n",
51+
"\n",
52+
"Гвидо ван Россум\n",
53+
"\n",
54+
"\n",
55+
"6. Почему Python считается быстрым, несмотря на то, что это интерпретируемый язык?\n",
56+
"\n",
57+
"Ответ:\n",
58+
"\n",
59+
"Потому что он написан на C и вызывает инструкции из C\n",
60+
"\n",
61+
"\n",
62+
"7. Напишите путь к Интерпретатору CPython на вашем компьютере\n",
63+
"\n",
64+
"Ответ:\n",
65+
"\n",
66+
"~/AppData/Local/Programs/Python/Python310/python.exe\n",
67+
"\n",
68+
"\n",
69+
"8. Что содержится в папке include в CPython?\n",
70+
"\n",
71+
"Ответ:\n",
72+
"\n",
73+
"заголовочные файлы с расширением .h\n",
74+
"\n",
75+
"\n",
76+
"9. Где можно найти исходный код CPython дайте ссылку на репозиторий гитхаб\n",
77+
"\n",
78+
"Ответ:\n",
79+
"\n",
80+
"https://github.com/python/cpython\n",
81+
"\n",
82+
"\n",
83+
"10. (опционально) Как работает интерпретатор CPython при выполнении кода?\n",
84+
"\n",
85+
"Ответ:\n",
86+
"\n",
87+
"Парсинг — исходный код разбирается в AST (абстрактное синтаксическое дерево).\n",
88+
"Компиляция в байт-код — AST компилируется в байт-код (.pyc), который хранится в папке __pycache__.\n",
89+
"\n",
90+
"Виртуальная машина (VM) — байт-код выполняется стековой виртуальной машиной:\n",
91+
"Читает инструкции байт-кода\n",
92+
"Выполняет их через C-функции\n",
93+
"Управляет стеком вызовов, объектами в памяти, GIL\n",
94+
"Выполнение — каждая инструкция байт-кода вызывает соответствующую C-функцию, которая выполняет операцию.\n",
95+
"\n",
96+
"\n",
97+
"11. Какая команда используется для запуска файла с помощью CPython?\n",
98+
"\n",
99+
"Ответ:\n",
100+
"\n",
101+
"python filename\n",
102+
"\n",
103+
"12. Можно ли запускать текстовые файлы через интерпретатор Python? Почему?\n",
104+
"\n",
105+
"Ответ:\n",
106+
"\n",
107+
"Да, можно\n",
108+
"Интерпретатору без разницы какой формат файла, главное, чтобы был валидный пайтон код\n",
109+
"\n",
110+
"13. Как указать путь к интерпретатору и файлу для выполнения кода?\n",
111+
"\n",
112+
"Ответ:\n",
113+
"\n",
114+
"Через Абсолютный или относительный путь, или если есть алиас в переменных средах, то через него\n",
115+
"\n",
116+
"14. Чем PyPy отличается от CPython?\n",
117+
"\n",
118+
"Ответ:\n",
119+
"\n",
120+
"PyPy — альтернативная реализация Python с JIT-компиляцией, быстрее CPython для многих задач, но с ограничениями по совместимости с C-расширениями\n",
121+
"\n",
122+
"15. Почему PyPy не может использоваться для всех проектов на Python?\n",
123+
"\n",
124+
"Ответ:\n",
125+
"\n",
126+
"Не совместим со всеми проектами на Python\n",
127+
"\n",
128+
"\n",
129+
"16. Где можно скачать PyPy?\n",
130+
"\n",
131+
"Ответ:\n",
132+
"\n",
133+
"https://pypy.org/download.html\n",
134+
"\n",
135+
"\n",
136+
"17. Как установить PyPy после скачивания?\n",
137+
"\n",
138+
"Ответ:\n",
139+
"\n",
140+
"Распаковать в нужную папку и прописать пути в переменных средах\n",
141+
"\n",
142+
"18. Как запустить файл с помощью PyPy?\n",
143+
"\n",
144+
"Ответ:\n",
145+
"\n",
146+
"pypy filename\n",
147+
"Или абсолютный путь до интерпретатора:\n",
148+
"~/pypy/pypy.exe filename\n",
149+
"\n",
150+
"19. Почему PyPy выполняет код быстрее, чем CPython?\n",
151+
"\n",
152+
"Ответ:\n",
153+
"\n",
154+
"PyPy быстрее за счёт JIT-компиляции часто используемого кода в машинный код, что устраняет интерпретацию байт-кода."
155+
]
156+
},
157+
{
158+
"cell_type": "markdown",
159+
"id": "136daecf",
160+
"metadata": {},
161+
"source": [
162+
"Задание 1: Поиск и установка CPython\n",
163+
"\n",
164+
"Проверьте, установлен ли CPython на вашем компьютере:\n",
165+
" Используйте поиск в меню \"Пуск\" (Windows) или терминале (Linux/Mac).\n",
166+
" Введите команду python --version или python3 --version в терминале.\n",
167+
"Если CPython не установлен, скачайте его с официального сайта Python https://www.python.org/downloads/ и установите.\n",
168+
"\n",
169+
"\n",
170+
"Решение:\n",
171+
"\n",
172+
"\n",
173+
"C:\\Users\\demya>where python\n",
174+
"C:\\Users\\demya\\anaconda3\\python.exe\n",
175+
"C:\\Users\\demya\\AppData\\Local\\Programs\\Python\\Python310\\python.exe\n",
176+
"C:\\Users\\demya\\AppData\\Local\\Programs\\Python\\Python311\\python.exe\n",
177+
"C:\\ProgramData\\miniconda3\\python.exe\n",
178+
"C:\\Users\\demya\\AppData\\Local\\Microsoft\\WindowsApps\\python.exe\n",
179+
"C:\\Users\\demya\\pypy\\python.exe\n",
180+
"\n",
181+
"\n",
182+
"C:\\Users\\demya>python --version\n",
183+
"Python 3.13.9"
184+
]
185+
},
186+
{
187+
"cell_type": "markdown",
188+
"id": "b6412bf5",
189+
"metadata": {},
190+
"source": [
191+
"Задание 2: Исследование структуры CPython\n",
192+
"\n",
193+
"Найдите папку, где установлен Python (например, через команду which python в терминале или свойства ярлыка).\n",
194+
"Откройте папку include и изучите её содержимое. Какое количество файлов на C там есть?\n",
195+
"Перейдите на [GitHub-репозиторий CPython](https://github.com/python/cpython) и найдите файл README. Прочитайте информацию о проекте.\n",
196+
"\n",
197+
"Решение:\n",
198+
"\n",
199+
"C:\\Users\\demya\\anaconda3\\include\n",
200+
"79 файлов\n"
201+
]
202+
},
203+
{
204+
"cell_type": "markdown",
205+
"id": "40744f44",
206+
"metadata": {},
207+
"source": [
208+
"Задание 3: Запуск файла с помощью CPython\n",
209+
"\n",
210+
"Создайте текстовый файл example.txt с содержимым:\n",
211+
"\n",
212+
"print(\"Hello from CPython!\")\n",
213+
"\n",
214+
"Запустите файл через команду python <путь_до_файла> (замените <путь_до_файла> на фактический путь к вашему файлу).\n",
215+
"Проверьте, что выводится на экран. Попробуйте изменить расширение файла на .py и повторите запуск.\n",
216+
"\n",
217+
"\n",
218+
"Решение:\n",
219+
"\n",
220+
"C:\\Users\\demya>echo print(\"Hello from CPython!\") > example.txt\n",
221+
"\n",
222+
"C:\\Users\\demya>python example.txt\n",
223+
"Hello from CPython!\n",
224+
"\n",
225+
"C:\\Users\\demya>move example.txt example.py\n",
226+
" 1 file(s) moved.\n",
227+
"\n",
228+
"C:\\Users\\demya>python example.py\n",
229+
"Hello from CPython!\n"
230+
]
231+
},
232+
{
233+
"cell_type": "markdown",
234+
"id": "52008d7a",
235+
"metadata": {},
236+
"source": [
237+
"Задание 4: Установка и использование PyPy\n",
238+
"\n",
239+
"Перейдите на [официальный сайт PyPy](https://www.pypy.org/) и скачайте подходящую версию для вашей операционной системы.\n",
240+
"Распакуйте скачанный архив в удобное место.\n",
241+
"Создайте файл example_pypy.py с кодом:\n",
242+
"\n",
243+
"print(\"Hello from pypy!\")\n",
244+
"\n",
245+
"Запустите файл через PyPy\n",
246+
"pypy <путь_до_файла> (замените <путь_до_файла> на фактический путь к вашему файлу).\n",
247+
"Проверьте, что выводится на экран. Попробуйте изменить расширение файла на .py и повторите запуск.\n",
248+
"\n",
249+
"Решение:\n",
250+
"\n",
251+
"C:\\Users\\demya>echo print(\"Hello from pypy!\") > example_pypy.py\n",
252+
"\n",
253+
"C:\\Users\\demya>pypy example_pypy.py\n",
254+
"Hello from pypy!"
255+
]
256+
},
257+
{
258+
"cell_type": "markdown",
259+
"id": "9e33b1cf",
260+
"metadata": {},
261+
"source": [
262+
"Задание 5: Сравнение производительности CPython и PyPy\n",
263+
"\n",
264+
"Создайте файл performance_test.py с кодом:\n",
265+
"\n",
266+
" import time\n",
267+
" start_time = time.time()\n",
268+
" total = 0\n",
269+
" for i in range(1, 10000000):\n",
270+
" total += i\n",
271+
" end_time = time.time()\n",
272+
" \n",
273+
" print(\"Result:\", total)\n",
274+
" print(\"Execution time:\", end_time - start_time, \"seconds\")\n",
275+
"\n",
276+
"Запустите этот файл сначала через CPython, а затем через PyPy. Запишите результаты времени выполнения для обоих интерпретаторов.\n",
277+
"\n",
278+
"Сделайте вывод о разнице в производительности.\n",
279+
"\n",
280+
"Решение:\n",
281+
"\n",
282+
"CPython:\n",
283+
"\n",
284+
"C:\\Users\\demya>python performance_test.py\n",
285+
"Result: 49999995000000\n",
286+
"Execution time: 0.7137529850006104 seconds\n",
287+
"\n",
288+
"\n",
289+
"Pypy:\n",
290+
"\n",
291+
"C:\\Users\\demya>pypy performance_test.py\n",
292+
"Result: 49999995000000\n",
293+
"Execution time: 0.023383617401123047 seconds"
294+
]
295+
}
296+
],
297+
"metadata": {
298+
"language_info": {
299+
"name": "python"
300+
}
301+
},
302+
"nbformat": 4,
303+
"nbformat_minor": 5
304+
}

0 commit comments

Comments
 (0)