{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Основы программирования в Python\n", "\n", "*Материал подготовил: Виталий Евтушенко, НИУ ВШЭ*\n", "\n", "*Редактирование: Алла Тамбовцева, НИУ ВШЭ*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Jupyter Notebook\n", "\n", "[Ссылка](https://jupyter.org/about) на официальную страницу Jupyter Notebook." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\"Commercial" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Что такое Jupyter Notebook?\n", "\n", "Оболочка для компилятора. Его особенности:\n", "\n", "\n", "- Можно запускать не только Python, но и [R](https://irkernel.github.io/), [С++](https://shuvomoy.github.io/blog/programming/2016/08/04/Cpp-kernel-for-Jupyter.html), фильмы в HD и всё, для чего сможете [найти](https://github.com/jupyter/jupyter/wiki/Jupyter-kernels) (или написать) ядро или что запускается без ядра.\n", "- Не является классической IDE (*Integrated Development Environment* — термин из програмной инженерии), потому что нет нет встроенной отладки (только внешними модулями/библиотеками), нет системы контроля версий.\n", "\n", "### Что почитать?\n", "\n", "- [Документация](https://jupyter.org/documentation) проекта Jupyter\n", "- **28 чаевых, шашней и наиболее рациональных способов Жупитера Тетрадь** [(сюда стоит зайти)](https://www.dataquest.io/blog/jupyter-notebook-tips-tricks-shortcuts/). [Оригинал статьи](https://arogozhnikov.github.io/2016/09/10/jupyter-features.html). [Перевод оригинала](https://habrahabr.ru/company/wunderfund/blog/316826/)\n", "- [Магические команды](https://ipython.readthedocs.io/en/stable/interactive/magics.html) в Jupyter\n", "\n", "- **Новое поколение проекта Jupyter - Lab**\n", " - [JupyterLab](https://jupyterlab.readthedocs.io/en/latest/getting_started/overview.html) (интересный интерфейс нового Jupyter'а)\n", " - [Документация](https://jupyterlab.readthedocs.io/en/latest/) JupyterLab \n", " - [Попробовать](https://mybinder.org/v2/gh/jupyterlab/jupyterlab-demo/master?urlpath=lab/tree/demo) онлайн" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Jupyter – это красиво" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import ipywidgets as widgets" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "a21b851da9eb4a7a84b8e76a68e4c33f", "version_major": 2, "version_minor": 0 }, "text/plain": [ "FloatProgress(value=9.2, bar_style='info', description='Loading:', max=10.0)" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# А это виджет. Еще они могут быть интерактивными (примеры по ссылке): \n", "# https://ipywidgets.readthedocs.io/en/latest/examples/Widget%20List.html\n", "\n", "widgets.FloatProgress(\n", " value=9.2,\n", " min=0,\n", " max=10.0,\n", " step=0.1,\n", " description='Loading:',\n", " bar_style='info',\n", " orientation='horizontal'\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Jupyter –  это удобно\n", "\n", "**Must-have команды клавиатуры (горячие клавиши, shortcuts)**\n", "\n", "- P - все команды клавиатуры (shortcuts) и действия\n", "- *Enter* или *Esc* - режим редактирования ячейки или тетрадки\n", " - *Y* - код (*code cells*)\n", " - *M* - разметка (*markdown cells*)\n", " - *R* - сырой текст (*raw cells*)\n", " - *1*, *2*, *3*, *4* - заголовки разных уровней\n", "- *A/B* - вставить ячейку ниже/выше\n", "- *L* - включить нумерацию строк\n", "- *D*, *D* - удалить ячейку" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Markdown in Jupyter" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Язык разметки текстов**\n", "\n", "> Философия: \"Markdown is intended to be as easy-to-read and easy-to-write as is feasible.\"\n", "\n", "- [Официальный сайт](https://daringfireball.net/projects/markdown/)\n", "- [Официальная документация](https://daringfireball.net/projects/markdown/syntax)\n", "- [Гайд](https://www.markdownguide.org/) и [**чит-листы (сюда стоит зайти)**](https://www.markdownguide.org/cheat-sheet) по разметке, которая используется в Jupyter'е\n", "- [Гайд от Microsoft](https://docs.microsoft.com/ru-ru/contribute/help-crr/help-content/contribute/contribute-how-to-write-use-markdown),\n", "- [Еще гайд, тысячи их](http://guides.hexlet.io/markdown/)\n", "- [Markdown за 10 минут](http://commonmark.org/help/tutorial/)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Подсветка для различных языков программирования\n", "\n", "```R\n", "R\n", "library(lattice)\n", "f <- rf(n = 5, df1 = 1, df2 = 3)\n", "\n", "```\n", "```python\n", "Python\n", "from sklearn.linear_model import LinearRegression\n", "print ('Machine learning')\n", "```\n", " \n", "```\n", "#Без_подсветки\n", "Hello darkness, my old friend.\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# IDLE\n", "\n", "[Ссылка](https://docs.python.org/3.8/library/idle.html) на IDLE." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Что такое IDLE?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "** Настоящая интегрированная среда разработки**. Одно из мест, где могут разрабатывать разработчики.\n", "\n", "- Установлен по умолчанию в [стандартном Python](https://www.python.org/downloads/). Чтобы открыть, достаточно написать в поиск Вашей операционной системы: \"IDLE (Python %ваша\\_версия\\_питона)\". Поддерживается в Windows, macOS, Linux. Теоретически, возможно портировать на [программируемые калькуляторы](https://sourceforge.net/p/py4calc/wiki/Home/).\n", "- Поддерживает режим консоли (*interactive shell*) и написание скриптов (*script mode*).\n", "- Есть дебаггер (встроенная отладка программы для поиска ошибок).\n", "\n", "Очень быстрый, в сравнении с промышленными IDE в вопросе скорости работы при одинаковых доступных ресурсах компьютера. В целом приятный, ламповый. \n", "\n", "- [Подробная документация по каждой кнопке](https://docs.python.org/3.8/library/idle.html)\n", "\n", "**Название: игра слов IDE и Idle ([Участник Монти Пайтон](https://en.wikipedia.org/wiki/Eric_Idle))**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# PyCharm\n", "\n", "[Ссылка](https://www.jetbrains.com/pycharm/) на PyCharm." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Что такое PyCharm?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Промышленний IDE от JetBrains**. \n", "\n", "В нём обычно разрабатывают крупные проекты (больше 1-2 файлов): например, веб с базами данных (веб разработка - [одна из ниш Python](https://www.jetbrains.com/pycharm/python-developers-survey-2016/), кроме научных вычислений и анализа данных), но он не менее удобен и полезен для больших проектов в науке о данных, которые не ограничиваются учебными целями и выходят за рамки рутинных задач аналитиков.\n", "\n", "Особенности:\n", "\n", "- Поддержка навигации по проекту\n", "- Рефакторинг кода (например: изменить название часто встречающейся переменной в разных файлах проекта и в документации в три клика)\n", "- Контроль версий\n", "- Встроенные инструменты для работы с фреймворками\n", "- Продвинутый отладчик \n", "- [Прочие возможности](https://ru.wikipedia.org/wiki/PyCharm#%D0%92%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE%D1%81%D1%82%D0%B8)\n", "\n", "**Скачать Community версию можно по [официальной ссылке](https://www.jetbrains.com/pycharm/download/#section=windows)**." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Spyder" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Что такое Spyder?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Свободная IDE для учёных и научных вычислений** (ссылка на [git](https://github.com/spyder-ide/spyder)). Входит в состав набора библиотек и сред [Anaconda Python](https://www.anaconda.com/distribution/).\n", "\n", "- [Официальная документация](https://pythonhosted.org/spyder/)\n", "- [Краткое введение в среду, язык и программирование для учёных](https://users.physics.unc.edu/~sheila/pythontutorial.html)\n", "\n", "**До конца 2017 года Spyder поддерживался не только сообществом, но и спонсорской помощью Anaconda, inc (прекращена)**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Сравнение IDE для Python: [тут](https://en.wikipedia.org/wiki/Comparison_of_integrated_development_environments#Python) и [тут](https://www.pythoncentral.io/comparison-of-python-ides-development/#idle)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.5" } }, "nbformat": 4, "nbformat_minor": 1 }