<jupyter_start><jupyter_text>Jupyter **Jupyter** представляет собой веб-интерфейс для исполнения кода в тетрадях \ ноубуках (notebook). Документ jupyter notebook имеет расширение .ipynb и состоит из множества ячеек. В ячейках можно писать программный код, делать размеченные и неразмеченные заметки. Этим функциям соответствует три типа ячеек:        1. code    2. markdown    3. raw Существуют 3 основных IDE для работы с юпитер ноутбуками:* [Jupyter Notebook](https://jupyter.org/)* [Jupyter Lab](https://towardsdatascience.com/jupyter-lab-evolution-of-the-jupyter-notebook-5297cacde6b)* [Google Colab](https://colab.research.google.com)Первые 2 - локальные среды разработки, которые нужно устанавливать на компьютер. Colab - облачная среда разработки. Код работает на гугловских серверах. У каждой есть свои плюсы и минусы. Пользоваться можно любой. Для работы с содержимым ячейки используется *режим редактирования* (*Edit mode*, включается нажатием клавиши **Enter** после выбора ячейки), а для навигации между ячейками искользуется *командный режим* (*Command mode*, включается нажатием клавиши **Esc**). Тип ячейки можно задать в командном режиме либо с помощью горячих клавиш (**y** to code, **m** to markdown, **r** to edit raw text), либо в меню *Cell -> Cell type*.  Кликните 2 раза по блоку, чтобы увидеть исходные данные ячейки.  Сode Jupyter Notebook представляет интерактивный интерпретатор питона (обертка над IPython). Имеется глобальное пространство имен. Каждая ячейка с кодом может быть запущена с учетом обазначенных переменных в пространстве. Ячейки можно запускать в любой последовательности, но тогда нужно следить за тем, какая ячейка в каком порядке запускалась (цифра возле ячейки блока).Чтобы выполнить ячейку с кодом нужно нажать *Shift + Enter*. На экран выведется результат **последней** команды.<jupyter_code>def frac(n):
    return frac(n-1)*n if n > 1 else 1
frac_5 = frac(5)
frac_5
# вывелось только второе значение
frac(6)
frac(7)
print(frac(6))
frac(7)<jupyter_output>720<jupyter_text>Что-то более интересное, вставляем видео, через библиотеку<jupyter_code>from IPython.display import YouTubeVideo
YouTubeVideo('fiQTb7-rCPo', width=640, height=360)<jupyter_output><empty_output><jupyter_text>Помимо кода, в блоке могут быть специфические для Jupyter вещи:  [Line magic](https://ipython.readthedocs.io/en/stable/interactive/magics.html) (`%magic` команды)<jupyter_code>#напечатает историю выполнения кода
%history -n 5-8<jupyter_output>5:
from IPython.display import HTML

# Youtube
HTML('<iframe width="560" height="315" src="https://www.youtube.com/embed/-ZRUZzZPGto?rel=0&amp;controls=0&amp;showinfo=0" frameborder="0" allowfullscreen></iframe>')
   6:
from IPython.display import HTML

# Youtube
HTML('<iframe width="560" height="315" src="https://www.youtube.com/embed/fiQTb7-rCPo?rel=0&amp;controls=0&amp;showinfo=0" frameborder="0" allowfullscreen></iframe>')
   7:
def frac(n):
    return frac(n-1)*n if n > 1 else 1
   8:
frac_5 = frac(5)
frac_5<jupyter_text>[Cell magic](https://ipython.readthedocs.io/en/stable/interactive/magics.htmlcell-magics) (`%%magic` команды)<jupyter_code>%%timeit

for _ in range(3000):
    for _ in range(3000):
        2 + 3 + 5 + 7<jupyter_output>206 ms ± 7.27 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)<jupyter_text>`!system` команды — вызовы к программам из командной строки (cmd, bash)<jupyter_code>!cmake --version
!echo "printing from the shell"
!pip -H install numpy<jupyter_output>Usage:   
  pip <command> [options]

no such option: -H<jupyter_text>Markdown Markdown - упрощенное сочетание html и латеха вместе. Он позволяет:0. Составлять упорядоченные списки1. Делать заголовки разного уровня3. Выделять *текст* при **необходимости**4. Добавлять [ссылки](http://imgs.xkcd.com/comics/the_universal_label.png)* Составлять неупорядоченные списки Страшные формулы ($\LaTeX$):$\newcommand{\tilsigma}{\tilde{\sigma}}$$$f(x,y) = A \exp\left(- \left(\frac{(x-x_o)^2}{2\tilsigma_X^2} + \frac{(y-y_o)^2}{2\tilsigma_Y^2} \right)\right)$$ Можно также вставлять изображения, видео и прочее: Можно вставлять сниппеты с кодом (без возможности выполнить):```pythonimport pandas```  Raw<jupyter_code>Я просто текст, ни разметка, ни латех, ни код. Никому я не нужен:(<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.114646700982686, 'fraction_numerical': 0.021993448759943846, 'mean_word_length': 5.785714285714286, 'pattern_counts': {'":': 0, '<': 26, '<?xml version=': 0, '>': 29, 'https://': 7, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '6', 'dir': 'jupyter-structured-clean-dedup', 'id': '152515', 'license': 'MIT', 'n_tokens_mistral': 1789, 'n_tokens_neox': 1916, 'n_words': 427, 'path': 'sem01/Jupyter_Intro.ipynb', 'repo_name': 'DeniskinBeast/mlmathmech', 'size': '4274'}