Как я использовал Python
Author:
Alexey
Last Updated:
10 years ago
License:
Creative Commons CC BY 4.0
Abstract:
A quick guide for starting with Python
\begin
Discover why 18 million people worldwide trust Overleaf with their work.
\begin
Discover why 18 million people worldwide trust Overleaf with their work.
\documentclass[a4paper,12pt]{article}
\usepackage[english,russian]{babel}
\usepackage{cmap} % nagivation using Russian
\usepackage[utf8]{inputenc}
\usepackage{indentfirst} % tradition of russian typography
\usepackage{hyperref}
\usepackage{tocloft} % for creating a toc with dots
\usepackage[nodayofweek]{datetime} % fixes problem with June in Russian in 'babel'
\usepackage{icomma}
\usepackage[colorinlistoftodos]{todonotes}
\hypersetup{
colorlinks=true,
urlcolor=blue
}
\usepackage[backend=biber,bibencoding=utf8,sorting=nyt,maxcitenames=2,style=authoryear]{biblatex}
\addbibresource{books.bib}
\renewcommand{\cftsecleader}{\cftdotfill{\cftdotsep}} % Add dots to toc
\title{Как я использовал \textsc{Python}}
\author{Алексей Лавров}
\date{\today}
\begin{document}
\maketitle
\tableofcontents
\newpage
\section*{Введение}
\addcontentsline{toc}{section}{Введение}
Как это ни~странно, но~проучившись в техническом вузе шесть лет, я не~повстречался с~языком
программирования
\textsc{Python} на~общем курсе информатики. Были \textsc{C}, \textsc{Assembler x86}, немного
\textsc{C++}, a~\textsc{Python} не~было. Резонно будет заметить, что~у~нас существуют курсы по выбору, на~которых можно выучить этот язык. Начинал ходить на
\href{http://www.mipt-courses.ru/2011-2012-autumn/tech/id-164/}{\emph{<<Современную практику коллективной разработки программного обеспечения>>}},
который вел \href{http://mipt.ru/persons/profs/iskhodzhanov-timur-ravilevich/}{наш выпускник},
но~с~началом практических работ просто закопался в синтаксисе. Пользу от умения программировать
на тот~момент я не~понимал.
Однако интерес к~\textsc{Python} с~тех пор у~меня остался.
И вот в~один из~дней мне попалась ссылка на~новую
\texttt{MOOC} платформу -- \href{http://www.edx.org}{\textbf{edX}}. Одним из~двух курсов, который привлек
мое внимание, оказался \href{https://www.edx.org/course/mitx/mitx-6-00-1x-introduction-computer-1841#.U6rEQLRZtpg}{\emph{Introduction to Computer Science and Programming Using Python}}.
Недолго думая, решил подписаться, рассчитывая одновременно убить двух зайцев: во-первых,
начать изучать \textsc{Python} с~курса <<для чайников>>, во-вторых, оценить уровень зарубежных
лекций.
В~этом небольшом документе я~бы хотел описать, где~впоследствие мне пригодился этот язык и~как
можно начать им~пользоваться самому, не~закапываясь глубоко в~документацию. Сразу отмечу,
что~на текущий я~пользовался \textsc{Python} в~основном для~автоматизации обработки данных
и~построения графикой для~научной работы.
\newpage
\section{С чего стоит начинать}
В~качестве первой книги советую прочитать \href{http://www.greenteapress.com/thinkpython/}{<<Think Python>>}, \textcite{downey2012think}, которая, кроме того, что~содержит чуть более 200 страниц, еще
и~свободно распространяется. Из этой книги вы~узнаете синтаксис, базовые классы данных и~сможете
поэксперементировать с графикой и анимацией, используя написанный автором пакет \emph{Swampy}.
Затем можно заглянуть в книгу, которая используется как основная на курсе \textbf{edX},
a~именно \href{http://www.amazon.com/Introduction-Computation-Programming-Using-Python/dp/026252 5003}{<<Introduction to Computation and Programming Using Python>>}, \textcite{guttag2013introduction}.
Если вам интересны базовые возможности для визуализации данных (графики, диаграммы и пр.),
то~из~нее можно взять только главы 12, 13, 15, 16 (при условии, что~\textcite{downey2012think} вы прочитали до этого).
\section{Что дальше}
Наиболее полным руководством по \textsc{Python} (и в~то~же наиболее затянутым) является книга
\href{http://www.amazon.com/Learning-Python-Edition-Mark-Lutz/dp/1449355730/ref=sr_1_1?ie=UTF8&qid=1403804855&sr=8-1&keywords=learning+python}{<<Learning python>>},
\textcite{lutz2013learning}. Можно найти ответ практически на любой вопрос, касающийся языка.
\textsc{Python} широко используется в научной среде. Если вы хотите узнать о возможностях
языка для численных расчетов, то рекомендую ознакомиться с
\href{http://www.amazon.com/Scientific-Programming-Computational-Science-Engineering/dp/3642302920/ref=sr_1_1?ie=UTF8&qid=1403805296&sr=8-1&keywords=A+primer+on+scientific+programming+with+Python}{<<A primer on scientific programming with Python>>}, \textcite{langtangen2009primer}.
\section{Построение графиков}
Итак, допустим, вы прочитали \textcite{guttag2013introduction} не~очень давно и~помните содержание
глав. Однако вам захотелось построить что-то отличное от~примеров, использованных в~книге.
Тогда вам прямая дорога к \href{http://matplotlib.org/}{документации пакета matplotlib}. Если хотите
быстро запрогать и~построить то, что у~вас уже~есть в~мыслях, то~написание кода
по~аналогии с \href{http://matplotlib.org/gallery.html}{примерами на сайте} -- ваш выход.
Однако, если вы любите копаться в~деталях и подкручивать различные параметры, осознавая фундаментальные вещи и~чувствуя себя высоклассным прогером
-- беритесь за \href{http://www.amazon.com/Matplotlib-Python-Developers-Sandro-Tosi/dp/1847197906}{<<Matplotlib for Python developers>>},
\textcite{tosi2009matplotlib}.
\section{Русские подписи для графиков}
Когда дойдет время до~презентаций или публикаций графиков, вы столкнетесь с~проблемой
шрифтов. Примеры из~вышеописанных книг с~русскими буквами работать не~будут. Вместо них будут
просто квадраты (даже~если~используете \emph{utf-8}). Решение проблемы хорошо описано
\href{http://jenyay.net/Matplotlib/Text}{здесь}.
\section{Сохранение графиков}
Для пользователей \LaTeX{} использование \textsc{Python} будет вдвойне приятно,
т.к.~построенные графики можно автоматически сохранять в формате \texttt{.pdf} и \texttt{.pgf}.
Последнее возможно, если у~вас на~машине стоит компилятор для~\LaTeX{} с~необходимыми пакетами.
В~документации пишут, например, об~использовании \textsc{TexLive}. Я же~пользуюсь
\textsc{MikTEX} в~силу исторических причин, что,~однако, не~делает меня менее счастливым.
Все генеририуется отлично.
Подробнее \href{http://matplotlib.org/users/pgf.html#pgf-tutorial}{написано в документации}.
\section{Конкретный пример}
\newpage
\section*{Установка и полезные ссылки}
\addcontentsline{toc}{section}{Установка и полезные ссылки}
Я пользуюсь версией интерпретатора \textsc{Python} 2.7, которую можно найти
\href{https://www.python.org/downloads/}{на официальном сайте проекта}.
После установки вы получите базовую функциональность, но~все дополнительные пакеты придется
ставить отдельно. Для удобства можно воспользоваться менеджером пакетов
\href{https://pypi.python.org/pypi/pip}{pip}, a~можно ставить вручную, пользуясь
\href{http://www.lfd.uci.edu/~gohlke/pythonlibs/}{этим полезным архивом}.
В качестве интерактивной оболочки я пользуюсь
\href{http://ipython.org/}{\textsc{IPython}}. Она значительно удобнее \textsc{IDLE}, которая
идет по~умолчанию. Кратко и по делу об этой оболочке написано в~книге
\href{http://www.amazon.com/Learning-IPython-Interactive-Computing-Visualization-ebook/dp/B00CITNPHQ/ref=sr_1_1?ie=UTF8&qid=1403855337&sr=8-1&keywords=IPython}{<<Learning IPython for Interactive Computing and Data Visualization>>},
\textcite{rossant2013learning}.
\printbibliography
\end{document}