{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<!-- dom:TITLE: Введение -->\n",
    "# Введение\n",
    "<!-- dom:AUTHOR: С.В. Лемешевский Email:sergey.lemeshevsky@gmail.com at Институт математики НАН Беларуси -->\n",
    "<!-- Author: -->  \n",
    "**С.В. Лемешевский** (email: `sergey.lemeshevsky@gmail.com`), Институт математики НАН Беларуси\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "<!-- Common Mako variable and functions -->\n",
    "<!-- -*- coding: utf-8 -*- -->\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "# Установка\n",
    "<div id=\"intro:install\"></div>\n",
    "\n",
    "## Версии Python\n",
    "<div id=\"intro:install:vers\"></div>\n",
    "\n",
    "На сегодняшний день существуют две версии Python — это Python 2\n",
    "и Python 3, у них отсутствует полная совместимость друг с другом. На\n",
    "данный момент вторая версия Python ещё широко используется,\n",
    "но, судя по изменениям, которые происходят, со временем, она останется\n",
    "только для запуска старого кода. Мы будем Python 3, и, в дальнейшем,\n",
    "если где-то будет встречаться слово Python, то под ним следует\n",
    "понимать Python 3. Случаи применения Python 2 будут специально\n",
    "оговариваться.\n",
    "\n",
    "## Установка Python\n",
    "<div id=\"intro:install:python\"></div>\n",
    "\n",
    "Для установки интерпретатора Python на ваш компьютер, первое, что\n",
    "нужно сделать — это скачать дистрибутив. Загрузить его можно с\n",
    "официального сайта, перейдя по ссылке <https://www.python.org/downloads/>\n",
    "\n",
    "<!-- dom:FIGURE: [fig-intro/python_downloads.png, width=600 frac=1.0] -->\n",
    "<!-- begin figure -->\n",
    "![](fig-intro/python_downloads.png)<!-- end figure -->\n",
    "\n",
    "\n",
    "\n",
    "### Установка Python в Windows\n",
    "\n",
    "<div id=\"intro:install:python:windows\"></div>\n",
    "\n",
    "Для операционной системы Windows дистрибутив распространяется либо в виде\n",
    "исполняемого файл, либо в виде архивного файла.\n",
    "\n",
    "<!-- dom:FIGURE: [fig-intro/python_dwl_list_files.png, width=600 frac=1.0] -->\n",
    "<!-- begin figure -->\n",
    "![](fig-intro/python_dwl_list_files.png)<!-- end figure -->\n",
    "\n",
    "\n",
    "**Порядок установки.**\n",
    "\n",
    "1. Запустите скачанный установочный файл.\n",
    "\n",
    "2. Выберете способ установки.\n",
    "\n",
    "<!-- dom:FIGURE: [fig-intro/python_inst_1.png, width=600 frac=1.0] -->\n",
    "<!-- begin figure -->\n",
    "![](fig-intro/python_inst_1.png)<!-- end figure -->\n",
    "\n",
    "\n",
    "В данном окне предлагается два варианта *Install Now* и *Customize installation*. При\n",
    "выборе *Install Now*, Python установится в папку по указанному пути. Помимо самого\n",
    "интерпретатора будет установлен `IDLE` (интегрированная среда разработки), `pip`\n",
    "(пакетный менеджер) и документация, а также будут созданы соответствующие ярлыки\n",
    "и установлены связи файлов, имеющие расширение `.py` с интерпретатором Python.\n",
    "*Customize installation* – это вариант настраиваемой установки. Опция *Add python 3.* to\n",
    "`PATH` нужна для того, чтобы появилась возможность запускать интерпретатор без\n",
    "указания полного пути до исполняемого файла при работе в командной строке.\n",
    "\n",
    "1. Отметьте необходимые опций установки (доступно при выборе *Customize installation*)\n",
    "\n",
    "<!-- dom:FIGURE: [fig-intro/python_inst_2.png, width=600 frac=1.0] -->\n",
    "<!-- begin figure -->\n",
    "![](fig-intro/python_inst_2.png)<!-- end figure -->\n",
    "\n",
    "\n",
    "На этом шаге нам предлагается отметить дополнения, устанавливаемые вместе с\n",
    "интерпретатором Python . Рекомендуем выбрать все опции:\n",
    "\n",
    "* `Documentation` – установка документаций.\n",
    "\n",
    "* `pip` – установка пакетного менеджера pip.\n",
    "\n",
    "* `tcl/tk` and `IDLE` – установка интегрированной среды разработки (`IDLE`) и библиотеки для построения графического интерфейса (`tkinter`).\n",
    "\n",
    "2. Выберете место установки (доступно при выборе Customize installation )\n",
    "\n",
    "<!-- dom:FIGURE: [fig-intro/python_inst_3.png, width=600 frac=1.0] -->\n",
    "<!-- begin figure -->\n",
    "![](fig-intro/python_inst_3.png)<!-- end figure -->\n",
    "\n",
    "\n",
    "Помимо указания пути, данное окно позволяет внести дополнительные\n",
    "изменения в процесс установки с помощью опций:\n",
    "\n",
    "* `Install for all users` – Установить для всех пользователей. Если не выбрать данную опцию, то будет предложен вариант инсталляции в папку пользователя, устанавливающего интерпретатор.\n",
    "\n",
    "* `Associate files with Python` – Связать файлы, имеющие расширение `.py`, с Python. При выборе данной опции будут внесены изменения в Windows , позволяющие запускать Python скрипты по двойному щелчку мыши.\n",
    "\n",
    "* `Create shortcuts for installed applications` – Создать ярлыки для запуска приложений.\n",
    "\n",
    "* `Add Python to environment variables` – Добавить пути до интерпретатора Python в переменную `PATH`.\n",
    "\n",
    "* `Precomple standard library` – Провести прекомпиляцию стандартной библиотеки.\n",
    "\n",
    "Последние два пункта (`Download debugging symbols`, `Download debug\n",
    "binaries`) связаны с загрузкой компонентов для отладки, их мы устанавливать не будем.\n",
    "\n",
    "\n",
    "1. После успешной установки вас ждет следующее сообщение.\n",
    "\n",
    "<!-- dom:FIGURE: [fig-intro/python_inst_4.png, width=600 frac=1.0] -->\n",
    "<!-- begin figure -->\n",
    "![](fig-intro/python_inst_4.png)<!-- end figure -->\n",
    "\n",
    "\n",
    "### Установка Python в Linux\n",
    "\n",
    "<div id=\"intro:install:python:linux\"></div>\n",
    "\n",
    "Чаще всего интерпретатор Python уже в входит в состав дистрибутива. Это можно\n",
    "проверить набрав в терминале"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "        Terminal> python\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "или"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "        Terminal> python3\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "В первом случае, вы запустите Python 2 во втором – Python 3. В будущем, скорее\n",
    "всего, во всех дистрибутивах Linux, включающих Python, будет входить только третья\n",
    "версия. Если у вас, при попытке запустить Python, выдается сообщение о том, что он\n",
    "не установлен, или установлен, но не тот, что вы хотите, то у вас есть два пути: а)\n",
    "собрать Python из исходников; б) взять из репозитория.\n",
    "\n",
    "Например, для установки из репозитория в Ubuntu воспользуйтесь командой:"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "        Terminal> sudo apt-get install python3\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Установка Anaconda\n",
    "<div id=\"intro:install:anaconda\"></div>\n",
    "\n",
    "Для удобства запуска примеров и изучения языка Python , советуем установить на\n",
    "свой ПК пакет Anaconda . Этот пакет включает в себя интерпретатор языка Python (есть\n",
    "версии 2 и 3), набор наиболее часто используемых библиотек и удобную среду\n",
    "разработки и исполнения, запускаемую в браузере.\n",
    "\n",
    "Для установки этого пакета, предварительно нужно скачать дистрибутив\n",
    "<https://www.continuum.io/downloads>.\n",
    "\n",
    "Есть варианты под Windows , Linux и Mac OS .\n",
    "\n",
    "### Установка Anaconda в Windows\n",
    "\n",
    "<div id=\"intro:install:anaconda:windows\"></div>\n",
    "\n",
    "1. Запустите скачанный инсталлятор. В первом появившемся окне необходимо\n",
    "нажать «Next».\n",
    "\n",
    "<!-- dom:FIGURE: [fig-intro/anaconda_inst_1.png, width=600 frac=1.0] -->\n",
    "<!-- begin figure -->\n",
    "![](fig-intro/anaconda_inst_1.png)<!-- end figure -->\n",
    "\n",
    "\n",
    "2. Далее следует принять лицензионное соглашение.\n",
    "\n",
    "<!-- dom:FIGURE: [fig-intro/anaconda_inst_2.png, width=600 frac=1.0] -->\n",
    "<!-- begin figure -->\n",
    "![](fig-intro/anaconda_inst_2.png)<!-- end figure -->\n",
    "\n",
    "\n",
    "\n",
    "3. Выберете одну из опций установки:\n",
    "\n",
    "<!-- dom:FIGURE: [fig-intro/anaconda_inst_3.png, width=600 frac=1.0] -->\n",
    "<!-- begin figure -->\n",
    "![](fig-intro/anaconda_inst_3.png)<!-- end figure -->\n",
    "\n",
    "\n",
    "* `Just Me` – только для пользователя, запустившего установку;\n",
    "\n",
    "* `All Users – для всех пользователей.`\n",
    "\n",
    "4. Укажите путь, по которому будет установлена Anaconda.\n",
    "\n",
    "<!-- dom:FIGURE: [fig-intro/anaconda_inst_4.png, width=600 frac=1.0] -->\n",
    "<!-- begin figure -->\n",
    "![](fig-intro/anaconda_inst_4.png)<!-- end figure -->\n",
    "\n",
    "\n",
    "5. Укажите дополнительные опции:\n",
    "\n",
    "<!-- dom:FIGURE: [fig-intro/anaconda_inst_5.png, width=600 frac=1.0] -->\n",
    "<!-- begin figure -->\n",
    "![](fig-intro/anaconda_inst_5.png)<!-- end figure -->\n",
    "\n",
    "\n",
    "* `Add Anaconda to the system PATH environment variable` – добавить Anaconda в системную переменную `PATH`;\n",
    "\n",
    "* `Register Anaconda as the system Python 3` – использовать Anaconda, как интерпретатор Python 3 по умолчанию.\n",
    "\n",
    "Для начала установки нажмите на кнопку «Install».\n",
    "\n",
    "5. После этого будет произведена установка Anaconda на ваш компьютер.\n",
    "\n",
    "<!-- dom:FIGURE: [fig-intro/anaconda_inst_6.png, width=600 frac=1.0] -->\n",
    "<!-- begin figure -->\n",
    "![](fig-intro/anaconda_inst_6.png)<!-- end figure -->\n",
    "\n",
    "\n",
    "### Установка Anaconda в Linux\n",
    "\n",
    "<div id=\"intro:install:anaconda:linux\"></div>\n",
    "\n",
    "Скачайте дистрибутив Anaconda для Linux, он будет иметь расширение\n",
    "`.sh` , и запустите установку командой:"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "        Terminal> bash имя_дистрибутива.sh\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "В результате вы увидите приглашение к установке. Для продолжения\n",
    "процессе нажмите «Enter».\n",
    "\n",
    "<!-- dom:FIGURE: [fig-intro/anaconda_inst_7.png, width=600 frac=1.0] -->\n",
    "<!-- begin figure -->\n",
    "![](fig-intro/anaconda_inst_7.png)<!-- end figure -->\n",
    "\n",
    "\n",
    "2. Прочитайте лицензионное соглашение, его нужно пролистать до конца.\n",
    "\n",
    "<!-- dom:FIGURE: [fig-intro/anaconda_inst_8.png, width=600 frac=1.0] -->\n",
    "<!-- begin figure -->\n",
    "![](fig-intro/anaconda_inst_8.png)<!-- end figure -->\n",
    "\n",
    "\n",
    "Согласитесь с ним, для этого требуется набрать в командной строке `yes`, в ответе\n",
    "на вопрос инсталлятора:"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "        Terminal> Do you approve the license terms? [yes|no]\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<!-- dom:FIGURE: [fig-intro/anaconda_inst_9.png, width=600 frac=1.0] -->\n",
    "<!-- begin figure -->\n",
    "![](fig-intro/anaconda_inst_9.png)<!-- end figure -->\n",
    "\n",
    "\n",
    "3. Выберете место установки. Можно выбрать один из следующих вариантов:\n",
    "\n",
    "<!-- dom:FIGURE: [fig-intro/anaconda_inst_10.png, width=600 frac=1.0] -->\n",
    "<!-- begin figure -->\n",
    "![](fig-intro/anaconda_inst_10.png)<!-- end figure -->\n",
    "\n",
    "\n",
    "* `Press ENTER to confirm the location` – нажмите ENTER для принятия предложенного пути установки. Путь по умолчанию для моей машины: /home/tester/anaconda3 , он представлен чуть выше данного меню.\n",
    "\n",
    "* `Press CTRL-C to abort the installation` – нажмите CTRL-C для отмены установки.\n",
    "\n",
    "* `Or specify a different location below` – или укажите другой путь в строке ниже.\n",
    "\n",
    "Нажмите «ENTER».\n",
    "\n",
    "4. После этого начнется установка.\n",
    "\n",
    "<!-- dom:FIGURE: [fig-intro/anaconda_inst_11.png, width=600 frac=1.0] -->\n",
    "<!-- begin figure -->\n",
    "![](fig-intro/anaconda_inst_11.png)<!-- end figure -->\n",
    "\n",
    "\n",
    "## Проверка работоспособности\n",
    "<div id=\"intro:install:check\"></div>\n",
    "\n",
    "Теперь проверим работоспособность всего того, что мы установили.\n",
    "\n",
    "### Проверка интерпретатора Python\n",
    "\n",
    "<div id=\"intro:install:check:python\"></div>\n",
    "\n",
    "Для начала протестируем интерпретатор в командном режиме. Если вы работаете\n",
    "в Windows , то нажмите сочетание Win+R и в появившемся окне введите\n",
    "`python`. В Linux откройте окно терминала и в нем введите `python3`\n",
    "(или `python`).\n",
    "\n",
    "В результате Python запустится в командном режиме, выглядеть это будет\n",
    "примерно так (картинка приведена для Windows, в Linux результат будет\n",
    "аналогичным):\n",
    "\n",
    "<!-- dom:FIGURE: [fig-intro/check_1.png, width=600 frac=1.0] -->\n",
    "<!-- begin figure -->\n",
    "![](fig-intro/check_1.png)<!-- end figure -->\n",
    "\n",
    "\n",
    "В окне введите:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "print(\"Hello, World!\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Результат должен быть следующий:\n",
    "\n",
    "<!-- dom:FIGURE: [fig-intro/check_2.png, width=600 frac=1.0] -->\n",
    "<!-- begin figure -->\n",
    "![](fig-intro/check_2.png)<!-- end figure -->\n",
    "\n",
    "\n",
    "### Проверка Anaconda\n",
    "\n",
    "<div id=\"intro:install:check:anaconda\"></div>\n",
    "\n",
    "Здесь и далее будем считать, что пакет Anaconda установлен в Windows, в папку\n",
    "`C:\\Anaconda3`, в Linux, вы его можете найти в каталоге, который\n",
    "выбрали при установке.\n",
    "\n",
    "Перейдите в папку `Scripts` и введите в командной строке:"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "        Terminal> ipython notebook\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<!-- dom:FIGURE: [fig-intro/check_3.png, width=600 frac=1.0] -->\n",
    "<!-- begin figure -->\n",
    "![](fig-intro/check_3.png)<!-- end figure -->\n",
    "\n",
    "\n",
    "Если вы находитесь в Windows и открыли папку `C:\\Anaconda3\\Scripts` через\n",
    "проводник, то для запуска интерпретатора командной строки для этой папки в поле\n",
    "адреса введите `cmd`.\n",
    "\n",
    "<!-- dom:FIGURE: [fig-intro/check_4.png, width=600 frac=1.0] -->\n",
    "<!-- begin figure -->\n",
    "![](fig-intro/check_4.png)<!-- end figure -->\n",
    "\n",
    "\n",
    "\n",
    "В результате запустится веб-сервер и среда разработки в браузере.\n",
    "\n",
    "<!-- dom:FIGURE: [fig-intro/check_5.png, width=600 frac=1.0] -->\n",
    "<!-- begin figure -->\n",
    "![](fig-intro/check_5.png)<!-- end figure -->\n",
    "\n",
    "\n",
    "Создайте ноутбук для разработки, для этого нажмите на кнопку «New» (в правом углу\n",
    "окна) и в появившемся списке выберете Python.\n",
    "\n",
    "В результате будет создана новая страница в браузере с ноутбуком. Введите в\n",
    "первой ячейке команду"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "print(\"Hello, World!\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "и нажмите Alt+Enter на клавиатуре. Ниже ячейки должна появиться соответствующая надпись.\n",
    "\n",
    "<!-- dom:FIGURE: [fig-intro/check_6.png, width=600 frac=1.0] -->\n",
    "<!-- begin figure -->\n",
    "![](fig-intro/check_6.png)<!-- end figure -->\n",
    "\n",
    "\n",
    "<!-- Local Variables: -->\n",
    "<!-- doconce-chapter-nickname: \"intro\" -->\n",
    "<!-- doconce-section-nickname: \"install\" -->\n",
    "<!-- End: -->\n",
    "# Запуск программ на Python\n",
    "<div id=\"intro:run\"></div>\n",
    "\n",
    "Программный код на языке Python можно записать с помощью любого\n",
    "простого текстового редактора, который способен загружать и сохранять\n",
    "текст либо в кодировке ASCII, либо UTF-8. По умолчанию предполагается,\n",
    "что файлы с программным кодом на языке Python сохраняются в кодировке\n",
    "UTF-8, надмножестве кодировки ASCII, с помощью которой можно\n",
    "представить практически любой символ любого национального\n",
    "алфавита. Файлы с программным кодом на языке Python обычно имеют\n",
    "расширение `.py`, хотя в некоторых UNIX-подобных системах (таких как\n",
    "Linux и Mac OS X) некоторые приложения на языке Python не имеют\n",
    "расширения, а программы на языке Python с графическим интерфейсом, в\n",
    "частности в Windows и Mac OS X, обычно имеют расширение `.pyw`. В этой\n",
    "книге все время будет использоваться расширение `.py` для обозначения\n",
    "консольных программ и модулей Python и расширение `.pyw` – для\n",
    "программ с графическим интерфейсом. Все примеры, представленные в\n",
    "книге, не требуют изменений для запуска в любой из платформ,\n",
    "поддерживаемых Python 3.\n",
    "\n",
    "\n",
    "Язык Python – это *интерпретируемый* язык. Это означает, что помимо\n",
    "непосредственно самой программы, вам необходим специальный инструмент для её\n",
    "запуска. Напомним, что существуют компилируемые и интерпретируемые языки\n",
    "программирования. В первом случае, программа с языка высокого уровня переводится\n",
    "в машинный код для конкретной платформы. В дальнейшем, среди пользователей,\n",
    "она, как правило, распространяется в виде бинарного файла. Для запуска такой\n",
    "программы не нужны дополнительные программные средства (за исключением\n",
    "необходимых библиотек, но эти тонкости выходят за рамки нашего обсуждения).\n",
    "Самыми распространенными языками такого типа являются C++ и C . Программы на\n",
    "интерпретируемых языках, выполняются интерпретатором и распространяются в виде\n",
    "исходного кода.\n",
    "\n",
    "Python может работать в двух режимах:\n",
    "* интерактивный;\n",
    "\n",
    "* пакетный.\n",
    "\n",
    "## Интерактивный режим работы\n",
    "<div id=\"intro:run:interact\"></div>\n",
    "\n",
    "В интерактивный режим можно войти, набрав в командной строке"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "        Terminal> python\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "или"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "        Terminal> python3\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "В результате Python запустится в интерактивном режиме и будет ожидать ввод\n",
    "команд пользователя.\n",
    "\n",
    "<!-- dom:FIGURE: [fig-intro/interact_1.png, width=600 frac=1.0] -->\n",
    "<!-- begin figure -->\n",
    "![](fig-intro/interact_1.png)<!-- end figure -->\n",
    "\n",
    "\n",
    "Если же у вас есть файл с исходным кодом на Python , и вы его хотите запустить, то\n",
    "для этого нужно в командной строке вызвать интерпретатор Python и в качестве\n",
    "аргумента передать ваш файл. Например, для файла с именем test.py процедура\n",
    "запуска будет выглядеть так:"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "        Terminal> python test.py\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Откройте Python в интерактивном режиме и наберите в нем следующее:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "print(“Hello, World!”)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "И нажмите ENTER .\n",
    "\n",
    "В ответ на это интерпретатор выполнит данную строку и отобразит\n",
    "строкой ниже результат своей работы.\n",
    "\n",
    "<!-- dom:FIGURE: [fig-intro/interact_2.png, width=600 frac=1.0] -->\n",
    "<!-- begin figure -->\n",
    "![](fig-intro/interact_2.png)<!-- end figure -->\n",
    "\n",
    "\n",
    "Python можно использовать как калькулятор для различных вычислений, а если\n",
    "дополнительно подключить необходимые математические библиотеки, то по своим\n",
    "возможностям он становится практически равным таким пакетам как Matlab, Octave и\n",
    "т.п.\n",
    "\n",
    "Различные примеры вычислений приведены ниже. Более подробно об\n",
    "арифметических операциях будет рассказано далее. \n",
    "\n",
    "<!-- dom:FIGURE: [fig-intro/interact_3.png, width=600 frac=1.0] -->\n",
    "<!-- begin figure -->\n",
    "![](fig-intro/interact_3.png)<!-- end figure -->\n",
    "\n",
    "\n",
    "Для выхода из интерактивного режима, наберите команду"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "exit()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "и нажмите ENTER .\n",
    "\n",
    "В комплекте вместе с интерпретатором Python идет IDLE (интегрированная\n",
    "среда разработки). По своей сути она подобна интерпретатору, запущенному\n",
    "в интерактивном режиме с расширенным набором возможностей (подсветка синтаксиса,\n",
    "просмотр объектов, отладка и т.п.).\n",
    "\n",
    "Для запуска IDLE в Windows необходимо перейти в папку Python в меню “Пуск” и\n",
    "найти там ярлык с именем «IDLE (Python 3 XX-bit)».\n",
    "\n",
    "<!-- dom:FIGURE: [fig-intro/interact_4.png, width=600 frac=1.0] -->\n",
    "<!-- begin figure -->\n",
    "![](fig-intro/interact_4.png)<!-- end figure -->\n",
    "\n",
    "\n",
    "В Linux оболочка IDLE по умолчанию отсутствует, поэтому ее предварительно\n",
    "нужно установить. Для этого, если у вас Ubuntu , введите в командной строке (для\n",
    "Python 3.4):"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "        Terminal> sudo apt-get install idle-python3\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "В результате IDLE будет установлен на ваш компьютер.\n",
    "Для запуска оболочки, введите:"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "        Terminal> idle-python3.4\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Ниже представлен внешний вид IDLE в ОС Linux.\n",
    "\n",
    "<!-- dom:FIGURE: [fig-intro/interact_5.png, width=600 frac=1.0] -->\n",
    "<!-- begin figure -->\n",
    "![](fig-intro/interact_5.png)<!-- end figure -->\n",
    "\n",
    "\n",
    "## Пакетный режим работы\n",
    "<div id=\"intro:run:interact:pack\"></div>\n",
    "\n",
    "Теперь запустим Python в режиме интерпретации файлов с исходным кодом\n",
    "(пакетный режим). Создайте файл с именем `test.py`, откройте его с\n",
    "помощью любого текстового редактора и введите следующий код:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "a = int(input())\n",
    "print(a**2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Эта программа принимает целое число на вход и выводит его квадрат. Для\n",
    "запуска, наберите в командной строке"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "        Terminal> python test.py\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Пример работы программы приведен в окне ниже.\n",
    "\n",
    "<!-- dom:FIGURE: [fig-intro/interact_5.png, width=600 frac=1.0] -->\n",
    "<!-- begin figure -->\n",
    "![](fig-intro/interact_5.png)<!-- end figure -->\n",
    "\n",
    "\n",
    "\n",
    "<!-- Local Variables: -->\n",
    "<!-- doconce-chapter-nickname: \"intro\" -->\n",
    "<!-- doconce-section-nickname: \"run\" -->\n",
    "<!-- End: -->\n",
    "\n",
    "<!-- Local Variables: -->\n",
    "<!-- doconce-chapter-nickname: \"intro\" -->\n",
    "<!-- End: -->"
   ]
  }
 ],
 "metadata": {},
 "nbformat": 4,
 "nbformat_minor": 2
}
