В этом видео мы начнем знакомство с IPython Notebook. На моем компьютере уже установлен IPython, и поэтому с помощью соответствующей команды в браузере я могу его запустить. При этом откроется новая вкладка, в которой будут перечислены все те файлы, которые лежат в директории запуска. Для создания нового файла достаточно нажать на кнопку New справа сверху и выбрать тип файла. Нам подходит Python 2. При этом в соседней вкладке появляется новый IPython Notebook, он пока что без названия, мы можем его задать. Давайте это сделаем. Я напишу introduction_to_python, вы можете выбрать любое название. Нажимаем кнопку OK. После этого в той директории, с которой мы запускали IPython, появится файл с этим именем и расширением ipython nb — ipynb. Итак, теперь давайте посмотрим на меню, которое у нас здесь в верхней строчке. На самом деле, меню достаточно интуитивное, поэтому прокомментирую очень коротко. Первая вкладка File предназначена для работы с самим файлом IPython Notebook'а. Из интересного здесь Download as — оно позволяет нам сохранить наш ноутбук, при этом это можно сделать в разных форматах — не только как ipynb-файл, но также как простой питоновский файл. Более того, мы можем выбрать сохранение с помощью html или pdf. Это довольно удобно, потому что если вам хочется поделиться результатами анализа с кем-то, кто не использует IPython или не использует Python в принципе, будет достаточно удобно сохранить это в виде pdf-документа и поделиться — тогда этот человек сможет просто его прочесть. Следующая вкладка — Edit, она отвечает за работу с ячейками. Еще одна вкладка — View — говорит о том, как может выглядеть наш IPython. Вот можем, допустим, скрыть верхнее меню, можем его снова вернуть, вот довольно удобно. Вкладка Insert позволяет нам вставлять ячейки, вкладка Cell отвечает за запуск ячеек и за то, как выглядит наш Output. Вкладка Kernel отвечает за работу с ядром: мы можем его прервать, можем его перегрузить, можем к нему подконнектиться заново. И вкладка Help позволяет нам получить подсказку по тем компонентам, с которыми мы работаем. Это может быть подсказка как по библиотекам, так и по составным частям ноутбука. Нижнее меню тоже довольно простое — при наведении на каждую иконку появляется комментарий. Первая иконка означает сохранение документа, следующая — добавление новой ячейки. Также ячейки можно вырезать, копировать, вставлять, двигать вверх-вниз, их можно запускать, можно прерывать выполнение и также можно перегружать ядро. Теперь давайте напишем нашу первую команду. Традиционно это будет команда 'hello, world!' — нужно будет вывести эту строчку на экран. У IPython это делается достаточно просто — достаточно просто написать эту строчку и запустить соответствующую ячейку. С этого и начнем. Итак, видим, что в качестве результата мы получили строку 'hello, world!'. Ну, можно поступить чуть более интересно — давайте создадим переменную и запишем в нее строчку 'hello, world!'. Ну вот, переменная получилась однобуквенная, не очень хорошо с точки зрения стиля, но ничего страшного. Так, создаем нашу строчку и запускаем. Теперь давайте выведем эту переменную на экран. Опять же это можно сделать двумя способами. Во-первых, можно просто запустить ячейку с этой переменной. Видим, в качестве результата выводится ее значение. Либо можно явно вызвать метод print. Также напечатали значение переменной. Двигаемся дальше. Часто IPython используют в качестве интерактивного калькулятора. Давайте и мы с вами попробуем что-нибудь посчитать. Ну давайте возведем число в степень. Это делается с помощью двойной звездочки. Вот видим, что получили правильный результат — действительно, 6 в четвертой степени. Можем попробовать деление. Видим, что когда мы делим одно целочисленное число на другое, предполагается, что и в качестве результата мы тоже ожидаем целочисленный тип — вот поэтому получили здесь число 8. Если же это не так и хочется получить точный результат в виде числа с плавающей точкой, то вот опять же можно это сделать разными способами. Самое простое — это перевести одно из этих чисел в тип float. Вот так мы и делаем и получаем результат с плавающей точкой. Но не всегда нам удобно работать с такими длинными числами, давайте его немножечко подсократим. Допустим, сделаем это с помощью округления. Для этого есть встроенная функция round. В качестве первого аргумента передаем ей выражение, которое мы хотим округлить. Давайте это же выражение и передадим. Второй аргумент — это количество знаков после запятой, которые мы хотим оставить. Ну давайте оставим три знака после запятой. Вот видите, получилось довольно компактная запись числа. На самом деле, это достаточно простые арифметические функции. Если вам хочется чего-то более интересного, то тут есть два варианта. Во-первых, нужную функцию вы можете самостоятельно реализовать, потом ею пользоваться. Второй вариант, как более предпочтительный — это импорт функций соответствующей библиотеки. Скорее всего, если вам нужно какое-то арифметическое выражение или какая-то функция, то она уже реализована. Вот я хочу посчитать факториал, давайте я его импортирую из библиотеки math. [БЕЗ_ЗВУКА] Итак, функция импортирована, теперь можно ее применять. Давайте посчитаем факториал от какого-нибудь небольшого числа, чтобы было легко проверить. Ну вот факториал, допустим, от трех. Он равен шести, все правильно. Ну теперь давайте посчитаем что-нибудь более интересное, например, факториал от десяти, ну, там умножим его на 0.5. Вот наш результат, тоже довольно просто. Еще одна особенность IPython, про которую хочется упомянуть — это гибкая работа с текстом. Вы можете оставлять комментарии, делить ваш IPython по заголовкам и даже редактировать формулы. Все это очень удобно и сильно повышает читаемость вашего ноутбука, поэтому я всячески советую этим пользоваться. Делается это довольно просто: мы создаем новую ячейку и дальше нам нужно поменять ее тип. Так как ячейку мы не планируем запускать — в том смысле, что мы не планируем писать в ней никакой код, — нужно задать ей тип Markdown. Теперь дальше. Можем написать здесь любой комментарий, который мы хотим видеть в этом месте. Ну давайте для примера просто напишем слово text, запустим ячейку и увидим, что вот этот комментарий теперь здесь останется. Если мы хотим добавить, например, заголовок, то нужно воспользоваться специальным символом. Заголовок обозначается с помощью решетки. Естественно, количество решеток соответствует уровню вашего заголовка. Чем больше решеток, тем ниже уровень заголовка. Ну вот, допустим, давайте сделаем заголовок первого уровня, для этого нам достаточно одной решетки. Напишем слово Header. Так. И теперь поменяем тип ячейки. Готово. Запускаем ее и видим, что появился наш заголовок. Теперь давайте сделаем нечто более интересное, а именно — напишем красивую формулу. Итак, снова меняем тип нашей ячейки. Формула начинается с двойного знака доллара. Ну и давайте напишем какую-нибудь формулу, знакомую всем с детства. Ну вот, например, следующую: квадратный корень из суммы квадратов катетов равен гипотенузе — например, это. Так. Синтаксис довольно простой. И заканчивает формулу опять же двойной знак доллара. Так. Видим, что получилась довольно симпатичная формула, соответственно, такими формулами вы можете пояснять весь свой код. [БЕЗ_ЗВУКА] Напоследок хочется показать еще несколько интересных функций. Ну, во-первых, мы можем вызывать команды bash прямо из IPython. Это делается с помощью восклицательного знака. Пишем восклицательный знак, а дальше — команду, которую мы хотим запустить. Ну давайте мы для простоты запишем, запустим команду echo, напишем в ней снова 'hello, world!' и запустим ее. Вот видите, результат у нас выводится прямо внутри IPython. Кстати, часто бывает удобно передавать туда питоновские переменные — это делается с помощью знака доллара. Помните, в самом начале мы создавали переменную, в которую записывали строчку 'hello, world!'? Вот давайте ее выведем, переменная называлась буквой t. Вот видите, все получается аналогично — тоже появилась строчка 'hello, world!'. Но это, что касается работа с простыми командами. Если нам хочется написать чуть более длинную команду, ну, например, состоящую из двух и более строк, то нам понадобится чуть более сложный синтаксис. Нам нужно будет вызвать так называемый bash magic. Делается это довольно просто: мы пишем два знака процента и далее — слово bash. После этого мы можем писать нашу команду, сколь угодно длинную. Ну давайте напишем для примера команду из двух строк, перейдем в другую директорию, ну и, допустим, выведем на экран, что в ней. Запускаем и видим, что ничего не вывелось, ну просто потому что директория пустая. Можем сделать вот так: ls − l — вот, действительно, написано, что нет ни одного файла. На самом деле, bash magic — далеко не единственный, который предоставляет нам IPython. Чтобы просмотреть весь список, нужно написать команду lsmagic. Видите, открылся довольно большой список, изучите его обязательно — я уверена, что вы найдете там что-то интересное для себя. А мы тем временем двигаемся дальше. И последнее, что хотелось бы показать — это работа с графиками в IPython. Для этого нам нужно также воспользоваться magic'ом, он называется pylab. Кстати, здесь он тоже перечислен, можете его найти. И нам нужно запустить его в режиме inline — эта команда позволит нам отрисовывать графики прямо внутри нашего IPython. Запускаем эту команду, и теперь давайте построим какой-нибудь простой график, например y = x. Для этого заведем наш y — это будет массив от 1 до 10. Давайте я его выведу на экран, чтобы вы в этом убедились. Действительно, обычный список. Итак, мы видим, что y — это массив чисел от 0 до 10, поэтому теперь давайте построим простой график y = x. Для этого нужно вызвать команду plot, передаем ей y в качестве аргумента и строим график. И вот на этом простом симпатичном графике хотелось бы закончить наше знакомство с ноутбуками, а начиная со следующего видео, вы будете более плотно знакомиться с синтаксисом языка Python.