Skip to content

Commit db38140

Browse files
committed
(add): REPL
1 parent 14c99c1 commit db38140

3 files changed

Lines changed: 88 additions & 6 deletions

File tree

‎00-tools.tex‎

Lines changed: 40 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -42,17 +42,51 @@ \subsubsection{Интерпретатор}
4242
\label{fig:python-pipeline}
4343
\end{figure}
4444

45-
46-
\paragraph*{Интерпретатор}
47-
48-
Исходный код \texttt{.py} компилируется в байт-код.
45+
\begin{warningbox2}
46+
\texttt{Интерпретатор} --- Исходный код \texttt{.py} компилируется в байт-код.
47+
\end{warningbox2}
4948

5049
\subsubsection{REPL}
5150

5251
\textbf{REPL = Read-Eval-Print Loop}. Это интерактивный режим интерпретатора.
5352

5453
\begin{lstlisting}
55-
def main() -> None:
56-
print("Hello")
54+
$ python3
55+
Python 3.12.0 (main, ...)
56+
>>> 2 + 2
57+
4
58+
>>> name = "world"
59+
>>> print(f"hello, {name}")
60+
hello, world
61+
>>> exit()
5762
\end{lstlisting}
5863

64+
\textbf{Цикл:}
65+
\begin{itemize}
66+
\item Read — читает строку.
67+
\item Eval — вычисляет.
68+
\item Print — печатает результат.
69+
\item Loop — возвращается к началу.
70+
\end{itemize}
71+
72+
\textbf{Зачем нужен:}
73+
\begin{itemize}
74+
\item Быстро проверить идею.
75+
\item Изучить поведение функции/метода.
76+
\item Отладка маленьких фрагментов.
77+
\item Прототипирование.
78+
\end{itemize}
79+
80+
\textbf{Улучшенные REPL:}
81+
\begin{itemize}
82+
\item ipython — подсветка, автодополнение, ?, ??, \%timeit.
83+
\item bpython, ptpython.
84+
\item Jupyter Notebook — REPL в браузере с сохранением состояния и визуализацией.
85+
\end{itemize}
86+
87+
\textbf{Что нужно понимать:}
88+
\begin{itemize}
89+
\item \textbf{REPL} — не для продакшена, а для экспериментов.
90+
\item В \textbf{REPL} переменные живут до выхода.
91+
\item \textbf{\_} хранит последний результат.
92+
\end{itemize}

‎main.pdf‎

15.4 KB
Binary file not shown.

‎preamble.tex‎

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,54 @@
2121
\usepackage{graphicx}
2222
\usepackage{tikz}
2323
\usetikzlibrary{arrows.meta, positioning, shapes, calc}
24+
\usepackage[most]{tcolorbox} % Для красивых блоков
25+
\usepackage{fontawesome5} % Для иконок (работает с XeLaTeX)
26+
27+
% --- Стиль для "Внимание" ---
28+
\newtcolorbox{warningbox}[1][]{
29+
enhanced,
30+
colback=red!5!white, % Светло-красный фон
31+
colframe=red!75!black, % Темно-красная рамка
32+
fonttitle=\bfseries,
33+
title={\faExclamationTriangle~Внимание}, % Иконка + заголовок
34+
#1
35+
}
36+
37+
% --- Стиль для "На заметку" ---
38+
\newtcolorbox{notebox}[1][]{
39+
enhanced,
40+
colback=blue!5!white, % Светло-синий фон
41+
colframe=blue!60!black, % Синяя рамка
42+
fonttitle=\bfseries,
43+
title={\faPen~На заметку}, % Иконка ручки
44+
#1
45+
}
46+
47+
%--- Стиль для "Внимание" 2й вариант
48+
\newtcolorbox{warningbox2}[1][]{
49+
enhanced,
50+
colback=red!5!white,
51+
colframe=red!75!black,
52+
overlay={
53+
\node[anchor=north west, inner sep=10pt] at (frame.north west)
54+
{\Huge\color{red!75!black}\faExclamationTriangle};
55+
},
56+
left=1.5cm, % Сдвигаем текст вправо, чтобы не наезжал на иконку
57+
#1
58+
}
59+
60+
%--- Стиль для "На заметку" 2й вариант
61+
\newtcolorbox{notebox2}[1][]{
62+
enhanced,
63+
colback=blue!5!white,
64+
colframe=blue!60!black,,
65+
overlay={
66+
\node[anchor=north west, inner sep=10pt] at (frame.north west)
67+
{\Huge\color{blue!60!black}\faPen};
68+
},
69+
left=1.5cm, % Сдвигаем текст вправо, чтобы не наезжал на иконку
70+
#1
71+
}
2472

2573
% --- Язык ---
2674
\usepackage[english,russian]{babel}

0 commit comments

Comments
 (0)