Что дальше

Добросовестный читатель, дочитавший книгу до сих пор, а также много практиковавшийся в написании программ, наверняка уже освоился с Python. И конечно, вы уже попробовали реализовать какие-нибудь собственные идеи на Python, чтобы потренироваться. Нет? Тогда стоит начать! Но в таком случае возникает вопрос: “Что же делать дальше?”.

Я предлагаю вам справиться со следующей задачей.

Задача

Создайте собственную программу “Адресная книга”, работающую из командной строки и позволяющую просматривать, добавлять, изменять, удалять или искать контактные данные ваших знакомых. Кроме того, эта информация также должна сохраняться на диске для последующего доступа.

Это достаточно простая задача, если думать о ней в терминах, которые мы до сих пор проходили. Если же вы всё-таки нуждаетесь в подсказке, как действовать, вот она.

Подсказка (не читать!)

Создайте класс для хранения персональных данных. Объекты визитных карточек храните в словаре, в котором имена контактов будут служить ключами. Для длительного хранения этих объектов на жёстком диске воспользуйтесь модулем pickle. Для добавления, изменения или удаления контактов применяйте встроенные методы словаря.

Как только вы справитесь с этим, вы смело можете называться программистом на Python. А теперь немедленно напишите мне письмо ;-). Это не обязательный шаг, но весьма рекомендуемый. Также подумайте о покупке бумажной версии книги, чтобы поддержать её дальнейшую разработку.

Если эта задачка показалась вам слишком лёгкой, попробуйте ещё одну:

Задача

Реализуйте команду replace. Эта команда заменяет одну строку другой в списке переданных ей файлов.

Команда replace может быть любой желаемой сложности: от простой замены строк до поиска по шаблону (регулярному выражению).

А вот ещё некоторые возможные направления вашего дальнейшего путешествия по миру Python:

Упражнения

На Stack Overflow есть неплохое обсуждение упражнений на Python, помогающих отточить ваше мастерство.

Примеры программ

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

Советы и рекомендации

Видео

Обсуждение

Если вы застряли на какой-то проблеме в Python и не знаете, кого спросить, тогда список рассылки python-tutor подойдёт наилучшим образом.

Тем не менее, сначала проделайте всю домашнюю работу и попытайтесь решить проблему самостоятельно.

Новости

Если вас интересуют последние новости мира Python, отслеживайте их на официальной планете Python.

Установка библиотек

В Каталоге пакетов Python существует колоссальное количество открытых библиотек, которые вы можете использовать в своих программах. Для их установки можно воспользоваться pip.

Графические программы

Для создания собственной графической программы на Python понадобится какая-нибудь библиотека ГИП (графического интерфейса пользователя) со своими привязками к Python. Привязки позволяют писать программу на Python, используя библиотеки, которые сами по себе написаны на C, C++ или других языках.

Выбор ГИП для Python достаточно обширен:

  • Kivy

    http://kivy.org

  • PyGTK

    Это привязки Python к инструментарию GTK+, на основе которого построен GNOME. У GTK+ есть много своих особенностей, но как только вы освоитесь, вы сможете создавать ГИП очень быстро. Что касается дизайнера графического интерфейса Glade, то он просто незаменим. Документация же всё ещё требует некоторых улучшений. GTK+ хорошо работает в GNU/Linux, но его порт на Windows пока не закончен. При помощи GTK+ можно создавать как свободные, так и проприетарные программы. Для начала прочитайте Учебник по PyGTK.

  • PyQt

    Это привязки Python к инструментарию Qt, на основе которого построена KDE. Qt чрезвычайно прост в использовании, особенно благодаря Qt Designer и изумительной документации Qt. PyQt бесплатно, если используется для создания свободных программ (с лицензией GPL). Для создания закрытых проприетарных программ вам придётся его купить. Начиная с Qt 4.5, разрешается создавать при помощи него не только GPL’ные программы. Для начала прочитайте краткое пособие по PyQt или Книгу PyQt.

  • wxPython

    Это привязки Python к инструментарию wxWidgets. wxPython не так прост в освоении, но зато он переносим и работает на GNU/Linux, Windows, Mac и даже на встраиваемых платформах. Многие среды разработки для wxPython, такие как SPE (Stani’s Python Editor) и wxGlade включают дизайнеры графического интерфейса. При помощи wxPython можно создавать как свободные, так и проприетарные программы. Для начала прочитайте учебник по wxPython.

Резюме по инструментам ГИП

Другие варианты можно найти на wiki-странице GuiProgramming официального сайта Python.

К сожалению, не существует некоего единого стандартного инструмента для создания графических программ на Python. Я бы рекомендовал выбирать один из инструментов, описанных выше, наиболее подходящий для конкретной ситуации. Во-первых, определитесь, согласны ли вы платить за использование этого инструмента. Во-вторых, определитесь, на каких платформах должна работать ваша программа: только на Windows, на Mac и GNU/Linux или на всех сразу. И в-третьих, если вы выбрали платформу GNU/Linux, то в какой среде вы работаете: в KDE или GNOME.

Для более подробного анализа см. страницу 26 Статей о Python, Том 3, Выпуск 1.

Различные реализации

Язык программирования обычно состоит из двух частей: собственно языка и программного обеспечения. Язык – это то, как мы что-либо пишем, а программное обеспечение – это то, что запускает наши программы.

До сих пор для выполнения наших программ мы использовали CPython. Он называется “CPython”, потому что написан на языке C и является Классическим интерпретатором Python[1].

Но существует и другое программное обеспечение, способное выполнять программы на Python:

  • Jython

    Реализация Python, работающая на платформе Java. Это означает, что можно использовать библиотеки и классы Java в программе на Python и наоборот.

  • IronPython

    Реализация Python, работающая на платформе .NET, что означает возможность использования библиотек и классов .NET в программах на Python и наоборот.

  • PyPy

    Реализация Python, написанная на Python! Это исследовательский проект, существующий для ускорения и облегчения разработки интерпретатора, поскольку сам интерпретатор написан на динамическом языке (в отличие от статических языков, как C, Java и C# в вышеупомянутых реализациях)

  • Stackless Python

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

Существуют и другие реализации, такие как CLPython – написанная на Common Lisp и IronMonkey – порт IronPython на JavaScript, что даёт возможность писать браузерные приложения (“Ajax”) на Python вместо JavaScript.

Каждая из перечисленных реализаций имеет свою область применения.

Функциональное программирование (для хорошо подготовленных читателей)

Для написания больших программ определённо необходимо изучить функциональный подход к программированию, в отличие от объектно-ориентированного подхода, который мы проходили в разделе “Объектно-ориентированное программирование”:

Резюме

Вот мы и подошли к концу нашей книги, но как говорится, это только начало конца! Теперь вы заядлый программист на Python, и несомненно, готовы решать множество задач при помощи Python. Теперь вы можете начать автоматизировать на своём компьютере всё подряд, можете писать собственные игры и многое-многое другое. Так что вперёд!

Примечания

[1]Classical Python interpreter (прим.перев.)