• Интерактивный учебник языка Python. Введение в Python

    Представляем вашему вниманию новый курс от команды The Codeby - "Тестирование Веб-Приложений на проникновение с нуля". Общая теория, подготовка рабочего окружения, пассивный фаззинг и фингерпринт, Активный фаззинг, Уязвимости, Пост-эксплуатация, Инструментальные средства, Social Engeneering и многое другое.


    Язык программирования Python уже давно занял лидирующее место среди всех языков программирования. По количеству сфер применения и возможностям он конкурирует с такими языками, как C++ и JavaScript. Конечно же, Python гораздо моложе, чем классические языки программирования, но он является идеальным для новичков и не только. Python используется в таких крупных компаниях, как Pixar, NASA.

    Во-первых: данный язык программирования обладает динамической типизацией, что означает отсутствие необходимости объявлять тип переменных, приводить один тип к другому и задумываться о каких-либо ограничениях по количеству символов, содержащихся в этих переменных. Динамическая типизация облегчает участь новичков, потому что они не должны глубоко вникать в устройство оперативной памяти и центрального процессора, чтобы понимать, как устроен язык. Конечно же, существуют правила, объясняющие некоторые принципы приведения одного типа данных к другому. На них, конечно же, стоит обратить внимание при изучении Python: так вы сможете избежать логических ошибок, которые не распознаются компилятором.

    Пример динамической типизацией:

    Во-вторых: этот язык обладает мощнейшими возможностями объектно-ориентированного программирования. Это значит то, что логическая структура программы на языке Python может быть построена так, что её код уместится в сравнительно малое количество строк. Действительно, программы, написанные на языке Python, занимают в полтора-два раза меньше строк, чем те же самые программы, написанные, например, на C++.

    Python является языком общего назначения. Это значит то, что он может применяться в абсолютно любой сфере разработки программного обеспечения. Действительно, на Python можно разработать всё: сложные математические системы с помощью модуля NumPy (альтернатива MatLab), веб-приложения с помощью Django, графические интерфейсы с помощью Tkinter, игры с помощью PyGame и так далее.

    Единственным минусом данного языка является его низкая скорость работы по сравнению с классическими языками (C++, Java). С другой стороны, вычислительная мощность современных компьютеров делает эту разницу незаметной. Однако и здесь разработчики Python нашли гениальное решение. Среда исполнения CPython компилирует код без промежуточной стадии машинного кода, что ускоряет работу программы. Таким образом, модули программы, скорость работы которых имеет решающее значение, могут быть разработаны с помощью CPython.

    Из всего вышесказанного следует, что Python достоин того, чтобы быть изученным. Если вы начинающий программист, то смело выбирайте Python в качестве первого языка. Это облегчит вам обучение искусству программирования и даст вам возможность для роста в дальнейшем. Для установки Python на линуксе можете прочитати

    Какие программы написаны на Python?

    Прикладное ПО для нормальных людей

    Давайте пройдемся для начала по программам, которыми пользуются обычные люди, не являющиеся специалистами в области информационных технологий.

    BitTorrent

    Все версии до 6 этого торрент-клиента были написаны на Python. Версия 6 была переписана на C++.

    Ubuntu Software Center

    Цитата из Википедии :
    Центр приложений Ubuntu (англ. Ubuntu Software Center ) - свободное программное обеспечение для поиска, установки и удаления пакетов в системе Ubuntu Linux . в последних версиях возможна покупка журналов о Linux и Ubuntu , также можно приобретать платные игры и софт . Приложение разработано на языке Python + Vala с использованием библиотек GTK+ и является графической оболочкой для Advanced Packaging Tool .

    Blender

    Цитата из Википедии :
    Blender - свободный, профессиональный пакет для создания трёхмерной компьютерной графики, включающий в себя средства моделирования, анимации, рендеринга, постобработки видео, а также создания интерактивных игр. В настоящее время пользуется наибольшей популярностью среди бесплатных 3D редакторов в связи с его быстрым и стабильным развитием, которому способствует профессиональная команда разработчиков.

    Python используется как средство создания инструментов и прототипов, системы логики в играх, как средство импорта/экспорта файлов (например COLLADA), автоматизации задач.

    Вот несколько страниц с документацией:

    GIMP

    Цитата из Википедии :
    Python используется для написания дополнительных модулей, например, фильтров.
    Вот несколько страниц, которые глубже раскрывают тему:

    Игры

    Civilization IV

    Большая часть игры написана на Python ().

    Battlefield 2

    В сети Интернет есть много учебников и просто рецептов по изменению различных объектов и их поведения.

    World of Tanks

    Цитата из статьи " GUI в игре World of Tanks ":
    В качестве скриптового языка в проекте используется Python. Всю красоту, которую мы сделали во Flash, нужно подключить в игре, наполнить данными, обработать и транслировать пользовательский ввод в реальные действия в игре. Все это как раз и делается в Python.
    Более полный список игр, которые используют Python, можно найти в Википедии и документации к Python .

    Какие компании используют Python?

    Список компаний, которые используют Python, длинный. Среди них Google , Facebook , Yahoo , NASA , Red Hat , IBM , Instagram , Dropbox , Pinterest , Quora , Яндекс , Mail.Ru .

    Яндекс

    Вот, пожалуйста, доклад " Python в ядре Яндекс.Диска ". Сергей Иващенко (докладчик):
    Я расскажу о том, как мы используем Python в Яндекс.Диске, какие применяем библиотеки и фреймворки, какие задачи решаем и с какими проблемами сталкиваемся. Также затрону тему логирования и обработки асинхронных операций.
    В одном из видео на канале Яндекса, сотрудники рассказали о своих любимых языках.

    А ещё в блоге компании Яндекс есть запись " На каких языках программирования пишут в Яндексе " от 19 марта 2014 года. Так вот, 13% сотрудников Яндекс большую часть рабочего времени пишут на языке Python.

    Mail.ru

    Сотрудники Mail.ru тоже используют Python. В официальном блоге Mail.ru на Хабре есть несколько статей о Python:

    Google

    В Google с самого основания активно использовали Python. Есть слухи, что большая часть YouTube и Google Drive написана на Python. Google разработал целую облачную платформу Google App Engine, чтобы разработчики могли запускать код на Python в облаке Google. Многие разработчики языка работали и работают в Google.

    DropBox

    Сервис разработан на языке Python. Не случайно сам автор языка Python, Гвидо ван Россум , работает в DropBox.

    Другие компании

    The organizations that use Python

    В каких областях применяется Python?

    Web-разработка

    В этой области Python, пожалуй, используется больше всего. Веб-фреймворк Django продолжает набирать обороты, пополняя армию своих фанатов. Многие начинающие программисты даже думают, что Python больше нигде не используется. Но на Python написаны многие другие веб-фреймворки: Pylons , TurboGears , CherryPy , Flask , Pyramid и другие. С более полным списком можно ознакомится .
    Есть и CMS на базе Django, она так и называется DjangoCMS .
    Очень часто на Python пишут и парсеры сайтов. Обычно для этого используют Requests , aiohttp , BeautifulSoup , html5lib . Есть и более высокоуровневые инструменты для парсинга сайтов: Scrapy , Grab .

    Системное администрирование

    Python - это отличный язык для автоматизации работы системного администратора. Он установлен по умолчанию на все Linux-сервера. Он простой, понятный. Код на Python легко читается. Некоторые любят Perl, я тоже его люблю за удобную работу с регулярными выражениями, но я ненавижу Perl за его синтаксис. Bash удобен для относительно небольших и средних скриптов, но Python мощнее и в некоторых случаях позволяет писать намного меньше кода.
    Единственный пакет, который я знаю, это Fabric . Возможно есть что-то ещё, напишите мне в комментариях, если знаете.

    Дополнительная информация

    Python for system administrators (IBM developerWorks)
    Fabric documentation. Systems Administration.

    Встроенные системы (embedded systems)

    Очень часто Python используется для программирования встроенных систем. Самый известный проект, который использует Python - это Raspberry Pi. Но он не единственный:
    Embedded Python
    Raspberry Pi
    Python Embedded Tools
    The Owl Embedded Python System

    Разработка прикладного ПО, в том числе игр

    Python часто используется как вспомогательный язык при разработке прикладного программного обеспечения. Примеры я уже приводил выше, не буду повторяться.

    Научные исследования

    Физики и математики очень любят Python за его простоту. Кроме того для Python существует огромное количество библиотек, облегчающих жизнь ученому. Например:
    1. SciPy - это открытая библиотека высококачественных научных инструментов для языка программирования Python. SciPy содержит модули для оптимизации, интегрирования, специальных функций , обработки сигналов , обработки изображений , генетических алгоритмов , решения обыкновенных дифференциальных уравнений и других задач, обычно решаемых в науке и при инженерной разработке.
    2. Matplotlib - библиотека на языке программирования Python для визуализации данных двумерной (2D) графикой (3D графика также поддерживается). Получаемые изображения могут быть использованы в качестве иллюстраций в публикациях.
    3. NumPy - это расширение языка Python, добавляющее поддержку больших многомерных массивов и матриц, вместе с большой библиотекой высокоуровневых математических функций для операций с этими массивами.
    Более полный список библиотек для научных вычислений на языке Python можно найти в Википедии .

    Обучение

    Очень часто в качестве первого языка программирования советуют именно Python.
    У некоторых российских школ есть успешный опыт обучения школьников программированию на языке Python.
    Кстати, Гвидо ван Россум находился под впечатлением от языка ABC , когда писал Python. А язык ABC предназначался для обучения и прототипирования.

    Критика языка Python

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

    В сети Интеренет можно найти много различных тестов скорости программ, написанных на разных языках программирования. Python обычно находится в конце списков.
    Обычно под Python имеют в виду CPython, эталонную реализацию языка. Существуют другие реализации языка Python, например PyPy. PyPy обгоняет по скорости CPython и многие другие скриптовые языки программирования, очень близок по скорости к Java. Но есть одна проблема - в PyPy не полностью реализован язык Python, из-за этого многие Python-программы на нем не работают.
    Многие программисты пишут вставки на C/C++, чтобы ускорить работу в узких местах. Python не предназначен для вычислительных задач, для задач, которые требуют много памяти (memory bound) и подобного. Нужно уметь выбирать подходящие инструменты для стоящих перед вами задач. Гвидо ван Россум говорит об этом в интервью .

    GIL мешает одновременному выполнению нескольких потоков

    Global Interpreter Lock не позволяет нескольким потокам Python выполняться одновременно. Это особенности CPython. Но недостаток ли это? Нужно понимать, что всё зависит от задачи. Если ваша задача зависит от скорости ввода-вывода (IO bound task), то эффективнее использовать несколько процессов, которые будут работать в асинхронном режиме с внешними ресурсами. А потоки с общей памятью хороши для вычислительных задач (CPU-bound). Но даже если вам нужна работа с потоками, то можно отключить GIL на время, так как это сделано в математическом пакет NumPy.

    Нет хороших инструментов для дистрибуции

    К сожалению код на Python, который имеет множество зависимостей от системных библиотек, сложно перенести на другие системы. Эту задачу решают с помощью virtualenv. но этот инструмент очень много критикуют системные администраторы.

    Дополнительная информация

    Python Success Stories
    You Used Python to Write WHAT?
    What is Python Used For?
    More proof that it"s Python"s world and we"re just living in it
    AVERAGE SALARY FOR JOBS REQUIRING PYTHON
    List of Python software

    О Python (лучше произносить "питон", хотя некоторые говорят "пайтон") - предмете данного изучения, лучше всего говорит создатель этого языка программирования, голландец Гвидо ван Россум:

    "Python - интерпретируемый, объектно-ориентированный высокоуровневый язык программирования с динамической семантикой. Встроенные высокоуровневые структуры данных в сочетании с динамической типизацией и связыванием делают язык привлекательным для быстрой разработки приложений ( RAD , Rapid Application Development ). Кроме того, его можно использовать в качестве сценарного языка для связи программных компонентов. Синтаксис Python прост в изучении, в нем придается особое значение читаемости кода, а это сокращает затраты на сопровождение программных продуктов. Python поддерживает модули и пакеты, поощряя модульность и повторное использование кода. Интерпретатор Python и большая стандартная библиотека доступны бесплатно в виде исходных и исполняемых кодов для всех основных платформ и могут свободно распространяться."

    В процессе изучения будет раскрыт смысл этого определения, а сейчас достаточно знать, что Python - это универсальный язык программирования. Он имеет свои преимущества и недостатки, а также сферы применения. В поставку Python входит обширная стандартная библиотека для решения широкого круга задач. В Интернете доступны качественные библиотеки для Python по различным предметным областям: средства обработки текстов и технологии Интернет, обработка изображений, инструменты для создания приложений, механизмы доступа к базам данных, пакеты для научных вычислений, библиотеки построения графического интерфейса и т.п. Кроме того, Python имеет достаточно простые средства для интеграции с языками C, C++ (и Java) как путем встраивания (embedding) интерпретатора в программы на этих языках, так и наоборот, посредством использования библиотек, написанных на этих языках, в Python-программах. Язык Python поддерживает несколько парадигм программирования: императивное (процедурный, структурный, модульный подходы), объектно-ориентированное и функциональное программирование.

    Можно считать, что Python - это целая технология для создания программных продуктов (и их прототипов). Она доступна почти на всех современных платформах (как 32-битных, так и на 64-битных) с компилятором C и на платформе Java.

    Может показаться, что, в программной индустрии нет места для чего-то другого кроме C/C++, Java, Visual Basic, C#. Однако это не так. Возможно, благодаря данному курсу лекций и практических занятий у Python появятся новые приверженцы, для которых он станет незаменимым инструментом.

    Как описать язык?

    В этой лекции не ставится цели систематически описать Python: для этого существует оригинальное справочное руководство. Здесь предлагается рассмотреть язык одновременно в нескольких аспектах, что достигается набором примеров, которые позволят быстрее приобщиться к реальному программированию, чем в случае строгого академического подхода.

    Однако стоит обратить внимание на правильный подход к описанию языка. Создание программы - это всегда коммуникация, в которой программист передает компьютеру информацию, необходимую для выполнения последним действий. То, как эти действия понимает программист (то есть "смысл"), можно назвать семантикой . Средством передачи этого смысла является синтаксис языка программирования. Ну а то, что делает интерпретатор на основании переданного, обычно называют прагматикой . При написании программы очень важно, чтобы в этой цепочке не возникало сбоев.

    Синтаксис - полностью формализованная часть: его можно описать на формальном языке синтаксических диаграмм (что и делается в справочных руководствах). Выражением прагматики является сам интерпретатор языка. Именно он читает записанное в соответствии с синтаксисом "послание" и превращает его в действия по заложенному в нем алгоритму. Неформальным компонентом остается только семантика. Именно в переводе смысла в формальное описание и кроется самая большая сложность программирования. Синтаксис языка Python обладает мощными средствами, которые помогают приблизить понимание проблемы программистом к ее "пониманию" интерпретатором. О внутреннем устройстве Python будет говориться в одной из завершающих лекций.

    История языка Python

    Создание Python было начато Гвидо ван Россумом (Guido van Rossum) в 1991 году, когда он работал над распределенной ОС Амеба. Ему требовался расширяемый язык, который бы обеспечил поддержку системных вызовов. За основу были взяты ABC и Модула-3. В качестве названия он выбрал Python в честь комедийных серий BBC "Летающий цирк Монти-Пайтона", а вовсе не по названию змеи. С тех пор Python развивался при поддержке тех организаций, в которых Гвидо работал. Особенно активно язык совершенствуется в настоящее время, когда над ним работает не только команда создателей, но и целое сообщество программистов со всего мира. И все-таки последнее слово о направлении развития языка остается за Гвидо ван Россумом.

    Прежде чем начать изучать тот или иной язык программирования, люди обычно задумываются, как потом смогут применить свои знания и навыки на практике. Что касается Python, этот язык общего назначения пригодится во множестве различных сфер. Разработчик и основатель стартапа CS Dojo Ек Суги рассказал о трёх самых частых способах использования Python.

    1. Веб-разработка

    Фреймворки, основанные на Python, такие как Django и Flask , в последнее время приобрели широкую популярность среди веб-разработчиков. Эти фреймворки позволяют создавать серверный код (backend-код) на Python, который выполняется на сервере, в отличие от frontend-кода, исполняемого на пользовательских устройствах и в браузерах.

    Для чего нужны веб-фреймворки

    Веб-фреймворки упрощают разработку серверной логики: обработку URL, обращение к базам данных, создание HTML-файлов, которые видят в браузерах пользователи.

    Какие фреймворки для веб-разработки лучше использовать

    Два наиболее популярных веб-фреймворка для Python — Django и Flask. Их рекомендуется использовать начинающим разработчикам.

    В чём разница между Django и Flask

    Отличную статью в ответ на этот вопрос подготовил Гарет Дуайер .

    Основные различия:

    • Flask — простой и гибкий фреймворк с очень подробными настройками. Пользователь может сам решать, как реализовывать те или иные вещи.
    • Django предоставляет полный функционал для разработки приложений прямо «из коробки»: встроенный интерфейс администратора, API доступа к базам данных, ORM, и структуру каталогов для приложений и проектов.

    Лучше воспользоваться:

    • Flask, если цель разработчика — опыт и возможности обучения, или же если ему нужно самостоятельно выбирать, какие компоненты использовать (например, какие применять базы данных или как взаимодействовать с ними).
    • Django, если главное — конечный продукт. Особенно, если нужно построить интуитивное приложение, например, новостной сайт, онлайн-магазин, блог, в котором пользователь сможет легко ориентироваться.

    Таким образом, Flask предпочтительнее использовать новичкам, потому что этот фреймворк имеет не настолько богатый функционал, а также тем, кому важна возможность настроить его по своему усмотрению. Кроме того, благодаря своей гибкости Flask больше, чем Django, подойдёт для разработки REST API. С другой стороны, если требуется создать простой продукт, быстрее это получится сделать на Django.

    2. Обработка данных (включая машинное обучение, анализ и визуализацию данных)

    Что такое машинное обучение

    Машинное обучении лучше объяснять на наглядном примере. Пусть нужно разработать программу, которая автоматически распознаёт изображённые на картинках объекты. На первой картинке программа должна опознать собаку.

    На второй она должна распознать стол.

    Первый путь — написать для этого специальный код. Например, если на картинке много светло-коричневых пикселей, значит, на ней нарисована собака. Или можно найти способ распознавать границы предметов: если на рисунке много прямых линий, то это — стол.

    Очевидно, что такое решение будет бесполезным, если на картинке показана, например, собака светлого окраса, у которой вообще нет коричневой шерсти, или только круглая столешница без ножек. Именно здесь раскрываются перспективы машинного обучения.

    В машинном обучении обычно используют алгоритм, который автоматически ищет заданный образ во входных данных. Например, можно ввести тысячу картинок с собаками и тысячу — со столами. Далее алгоритм машинного обучения выявит разницу между собакой и столом. Когда алгоритм получит новое изображение собаки или стола, то сможет идентифицировать объект.

    То есть систему обучают на конкретных примерах: ей не указывают отдельные признаки того или иного предмета, а показывают множество изображений и говорят, что на всех из них нарисован этот предмет. Аналогичным образом обучаются

    • системы распознавания лиц,
    • системы распознавания голоса,
    • рекомендательные системы сайтов вроде YouTube, Amazon или Netflix.

    Самые широко известные алгоритмы машинного обучения:

    • нейронные сети,
    • глубокое обучение,
    • метод опорных векторов,
    • «случайный лес».

    Любой из этих алгоритмов можно использовать для решения задачи с маркированием изображений выше.

    Python для машинного обучения

    Для Python есть популярные библиотеки и фреймворки машинного обучения. Две самые крупные из них — scikit-learn и TensorFlow . В scikit-learn встроены некоторые общеизвестные алгоритмы машинного обучения, о которых шла речь выше. TensorFlow — более низкоуровневая библиотека, которая позволяет строить пользовательские алгоритмы.

    Как изучать машинное обучение

    Чтобы изучить основы этой технологии, можно пройти курсы Стэнфордского университета или . Но для понимания некоторого материала понадобятся базовые знания матанализа и линейной алгебры.

    Далее полученную информацию нужно закрепить на сайте Kaggle . Здесь можно соревноваться с другими разработчиками в создании лучшего алгоритма машинного обучения для различных задач. Сайт также предлагает полезные самоучители для начинающих.

    Анализ данных и визуализация данных

    В качестве примера можно взять аналитика данных воображаемой компании, занимающейся продажей товаров через интернет. Аналитик может представить результаты продаж в виде столбчатой диаграммы.

    На диаграмме видно, что в заданное воскресенье покупатели мужского пола приобрели более 400 единиц товара, а женского — около 350. У специалиста может быть несколько предположений, почему возник этот разрыв.

    Одно из очевидных объяснений — продукт более востребован среди мужчин, чем женщин. Другая возможная причина — недостаточно большая выборка, а разницу можно списать на случайность. Третий вариант — по какой-то причине мужчины склонны больше покупать этот продукт только в воскресенье. Чтобы понять, какое из объяснений истинно, можно нарисовать ещё одну диаграмму.

    Необходимо принять во внимание статистику продаж не только в воскресенье, но и за всю неделю. Как видно из диаграммы, такая динамика прослеживается по всем дням. Этот небольшой анализ позволяет сделать вывод, что наиболее правдоподобная причина различия в продажах в том, что продукт просто более популярен среди мужчин, чем среди женщин.

    Но если бы диаграмма выглядела так,

    можно было бы заключить, что по той или иной причине мужчины активнее покупают этот товар только по воскресеньям.

    Это очень простой пример анализа данных. И для этого компании используют в том числе Python, а для визуализации данных — библиотеку Matplotlib .

    Анализ и визуализация данных на Python

    Matplotlib — одна из наиболее распространённых библиотек для визуализации данных. Начинать лучше с неё потому, что она проста, а также потому, что на ней основаны некоторые другие библиотеки, например, seaborn . Поэтому знание Matplotlib поможет в будущем освоить и их.

    Как изучать анализ и визуализацию данных на Python

    В первую очередь нужно выучить основы. Ек Суги предлагает собственное вводное видео в анализ и визуализацию данных на Python и Matplotlib на YouTube, а также полный практический курс на образовательной платформе Pluralsight, который можно получить бесплатно после подписки на 10-дневный пробный период на сайте. После этого полезно изучить основы статистики, например, на Coursera и Khan Academy.

    3. Написание скриптов

    Что такое написание скриптов

    Обычно под этим понимают создание небольших программ для автоматизации простых задач. Например, компании используют различные системы поддержки клиентов по электронной почте. Чтобы анализировать полученные сообщения, компаниям нужно подсчитать, какой их количество содержит определённые ключевые слова.

    Это можно либо делать вручную, либо написать незамысловатую программу (скрипт) для автоматической обработки сообщений. Для подобных задач отлично подходит Python, главным образом благодаря относительно простому синтаксису и потому, что на нём можно легко и быстро писать и тестировать небольшие проекты.

    Python и встраиваемые приложения

    На этом языке ведут программирование многие разработчики для Raspberry Pi и других аппаратных основ.

    Python и компьютерные игры

    Для разработки игр можно использовать библиотеку PyGame, хотя существуют и более популярные игровые движки. На ней можно создавать любительские проекты, но для разработки серьёзных игр стоит поискать что-то получше.

    Например, можно начинать с Unity на C# — это одна из самых общеизвестных сред разработки компьютерных игр. Она позволяет создавать межплатформенные игры для Windows, Mac, iOS и Android.

    Python и десктопные приложения

    Десктопные приложения можно разрабатывать на Python с помощью Tkinter, но это также не самый частый выбор: разработчики приложений для ПК предпочитают языки Java, C#, и C++. В последнее время некоторые компании для этого начали применять и JavaScript. Например, десктопное приложение Slack построено во фреймворке Electron, использующем JavaScript. Этот язык даёт возможность повторно использовать код из веб-версии приложения, если такая имеется.

    Python 3 или Python 2

    Лучше выбрать Python 3, потому что на сегодняшний день это более современная и более востребованная версия языка.

    Подборка подготовлена с учетом личного опыта практикующих программистов. Здесь книги, которые подойдут как для новичков, так и для владеющих определенной базой разработчиков. Правда тем, кто совсем ноль в знании языка, советуем сначала пройтись по WikiBooks , вникнуть в азы , а потом выбирать из списка.

    Learning Python , Mark Lutz (5th Edition)

    Наиболее частый ответ на вопрос: «что почитать про Python?». Отличная книга, практически полное руководство по языку (и частично стандартной библиотеке). Из минусов - много воды, и последнее издание вышло 2 года назад (уже почти 3) и поэтому не включает последние изменения. Но для начинающих книга все еще актуальна.

    Programming Python (4th Edition) , Mark Lutz

    Переход от изучения к практике. Учимся применять полученные знания для написания будущих программ.

    Think Python: How to Think Like a Computer Scientist , Allen B. Downey

    Введение в Python для начинающих. Книга последовательно раскрывает особенности языка. Объемные темы, такие как рекурсия и объектно-ориентированное программирование для облегчения усвоения разбиты на небольшие шаги. На сайте книги встроены интерактивные модули, где можно запустить свой код.

    Dive Into Python / , Mark Pilgrim

    Краткое руководство с большим количеством примеров кода и использованием стандартной библиотеки. Эта книга охарактеризована многими обозревателями, как отличное введение в Python.