Основы программирования в Python

Материал подготовил: Виталий Евтушенко, НИУ ВШЭ

Редактирование: Алла Тамбовцева, НИУ ВШЭ

Jupyter Notebook

Ссылка на официальную страницу Jupyter Notebook.

Commercial Photography

Что такое Jupyter Notebook?

Оболочка для компилятора. Его особенности:

  • Можно запускать не только Python, но и R, С++, фильмы в HD и всё, для чего сможете найти (или написать) ядро или что запускается без ядра.
  • Не является классической IDE (Integrated Development Environment — термин из програмной инженерии), потому что нет нет встроенной отладки (только внешними модулями/библиотеками), нет системы контроля версий.

Что почитать?

Jupyter – это красиво

In [1]:
import ipywidgets as widgets
In [4]:
# А это виджет. Еще они могут быть интерактивными (примеры по ссылке): 
# https://ipywidgets.readthedocs.io/en/latest/examples/Widget%20List.html

widgets.FloatProgress(
    value=9.2,
    min=0,
    max=10.0,
    step=0.1,
    description='Loading:',
    bar_style='info',
    orientation='horizontal'
)

Jupyter –  это удобно

Must-have команды клавиатуры (горячие клавиши, shortcuts)

  • P - все команды клавиатуры (shortcuts) и действия
  • Enter или Esc - режим редактирования ячейки или тетрадки
    • Y - код (code cells)
    • M - разметка (markdown cells)
    • R - сырой текст (raw cells)
    • 1, 2, 3, 4 - заголовки разных уровней
  • A/B - вставить ячейку ниже/выше
  • L - включить нумерацию строк
  • D, D - удалить ячейку

Markdown in Jupyter

Язык разметки текстов

Философия: "Markdown is intended to be as easy-to-read and easy-to-write as is feasible."

Подсветка для различных языков программирования

R
library(lattice)
f <- rf(n = 5, df1 = 1, df2 = 3)
Python
from sklearn.linear_model import LinearRegression
print ('Machine learning')
#Без_подсветки
Hello darkness, my old friend.

IDLE

Ссылка на IDLE.

Что такое IDLE?

Настоящая интегрированная среда разработки. Одно из мест, где могут разрабатывать разработчики.

  • Установлен по умолчанию в стандартном Python. Чтобы открыть, достаточно написать в поиск Вашей операционной системы: "IDLE (Python %ваша_версия_питона)". Поддерживается в Windows, macOS, Linux. Теоретически, возможно портировать на программируемые калькуляторы.
  • Поддерживает режим консоли (interactive shell) и написание скриптов (script mode).
  • Есть дебаггер (встроенная отладка программы для поиска ошибок).

Очень быстрый, в сравнении с промышленными IDE в вопросе скорости работы при одинаковых доступных ресурсах компьютера. В целом приятный, ламповый.

Название: игра слов IDE и Idle (Участник Монти Пайтон)

PyCharm

Ссылка на PyCharm.

Что такое PyCharm?

Промышленний IDE от JetBrains.

В нём обычно разрабатывают крупные проекты (больше 1-2 файлов): например, веб с базами данных (веб разработка - одна из ниш Python, кроме научных вычислений и анализа данных), но он не менее удобен и полезен для больших проектов в науке о данных, которые не ограничиваются учебными целями и выходят за рамки рутинных задач аналитиков.

Особенности:

  • Поддержка навигации по проекту
  • Рефакторинг кода (например: изменить название часто встречающейся переменной в разных файлах проекта и в документации в три клика)
  • Контроль версий
  • Встроенные инструменты для работы с фреймворками
  • Продвинутый отладчик
  • Прочие возможности

Скачать Community версию можно по официальной ссылке.

Spyder

Что такое Spyder?

Свободная IDE для учёных и научных вычислений (ссылка на git). Входит в состав набора библиотек и сред Anaconda Python.

До конца 2017 года Spyder поддерживался не только сообществом, но и спонсорской помощью Anaconda, inc (прекращена)

Сравнение IDE для Python: тут и тут