Как я использовал Python
Forfatter
Alexey
Sidst opdateret
10 år siden
Licens
Creative Commons CC BY 4.0
Resumé
A quick guide for starting with Python
\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}