CFA LogoCFA Logo Computer
Новости Статьи Магазин Драйвера Контакты
Новости
RSS канал новостей
В конце марта компания ASRock анонсировала фирменную линейку графических ускорителей Phantom Gaming. ...
Компания Huawei продолжает заниматься расширением фирменной линейки смартфонов Y Series. Очередное ...
Компания Antec в своем очередном пресс-релизе анонсировала поставки фирменной серии блоков питания ...
Компания Thermalright отчиталась о готовности нового высокопроизводительного процессорного кулера ...
Компания Biostar сообщает в официальном пресс-релизе о готовности флагманской материнской платы ...
Самое интересное
Программаторы 25 SPI FLASH Адаптеры Optibay HDD Caddy Драйвера nVidia GeForce Драйвера AMD Radeon HD Игры на DVD Сравнение видеокарт Сравнение процессоров

АРХИВ СТАТЕЙ ЖУРНАЛА «МОЙ КОМПЬЮТЕР» ЗА 2002 ГОД

Слышите меня, бандерлоги?

Сергей ЯРЕМЧУК grinder@ua.fm

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

Сначала немного истории. Python был создан в начале 90-х сотрудником голландского института CWI Гвидо ван Россумом (Guido van Rossum), который участвовал в разработке языка АВС. Язык предназначался для замены языка BASIC, который тогда применялся при обучении программированию. Гвидо написал его дома (наверно, со скуки — он был тогда холостяком, как и Б.Г. во время создания BASIC :-)), заимствовав наработки для языка АВС. Далее все просто: язык начал свободно распространятся через Интернет, и программистам язык понравился. Но если Вы думаете, что название произошло от вида пресмыкающихся, то ошибаетесь. В ту пору был очень популярен комедийный сериал «Воздушный цирк Монти Пайтона», вот в честь этого самого Пайтона и был назван язык. Вообще, по истории создания языка тоже можно было бы снять хороший сериал, но я думаю, что читателя в первую очередь больше всего интересует, в чем же его примечательность.

Python — язык более высокого уровня, чем С, С++ и Pascal. С 1991 года является полностью объектно-ориентированным.

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

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

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

Numerical Python — расширенные математические возможности;

Tkinter — построение приложений с использованием графического пользовательского интерфейса на основе библиотеки Tk;

socket — предоставляет объектно-ориентированный интерфейс к функциям сетевых библиотек ОС. Поддерживаются все виды сокетов и все сетевые протоколы, в т.ч. TCP/IP (включая IPv6);

cgi — модуль для написания CGI-скриптов;

Scientific Python — для научных расчетов;

OpenGL — для графического моделирования двух- и трехмерных объектов;

mysql, msql — для доступа к соответствующей базе данных.

Как видите, даже этот далеко не полный список охватывает практически все сферы применения современных языков программирования. В Интернете по адресу http://www.vex.net/parnassusсуществует каталог модулей под поэтичным именем Парнас. Существуют также модули, позволяющие встраивать код в Web-сервер Apache.

Теперь давайте рассмотрим особенности языка.

В нем не требуется объявлять переменные, как, например, в Pascal или С++ — в этом он напоминает Бейсик и Perl. Переменные создаются при их первой инициализации, т.е. тип определяется типом присваиваемого значения, но если вам необходимо в ходе задачи сменить тип переменной, вы можете просто ее переназначить. При этом значение можно присвоить сразу нескольким переменным.

Например:

Поменять местами значения переменных ничего не стоит:

Для выделения блоков операторов не надо никаких конструкций типа begin …end или фигурных скобок; здесь все гораздо проще — они выделяются пробелами или табуляцией:

Поэтому хочешь не хочешь, а выдерживать стиль придется — здесь не получится все операторы слепить в кучу (против чего борются во всех других языках программирования), программа просто не будет работать.

В языке имеется ряд встроенных структур —списки (list), словари (dictionary) и тьюплы (tuple). В двух словах о каждом из этих типов.

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

Добавить новый элемент можно так

Списки, в отличие от тьюплов, можно изменять; чтобы создать список, нужно просто перечислить значения через запятую и заключить все в квадратные скобки (списки могут быть вложенными):

Обращаться к элементам можно по индексу а[1], но можно использовать и сечения, указывая начальный и конечный индекс: а[3:5], a[2:], a[:5], a[-2].

Словарь напоминает хеш в языке Perl или record в Pascal. Здесь элементами являются пары "ключ"-"значение". В поле ключ используется константа (как правило строка), служащая для индексирования некоторого соответствующего ему значения, которое можно изменять. Создается путем перечисления ключ:значение через запятую в фигурных скобках.

Для добавления новой пары достаточно присвоить паре с новым ключом соответствующее значение:

Python не поддерживает работу с указателями и динамической памятью. В этом он похож на Java. Для обеспечения большей надежности и простоты они не были включены в язык.

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

Пример вычисления числа Фибоначчи:

Вызов функции:

Ключевое слово return останавливает работу функции и возвращает ее значение в качестве результата.

При вызове функций можно использовать именованные значения (Keyword Arguments) и значения по умолчанию (Default Argument Values), но эти подробности выходят за рамки данной статьи.

Так как Python является объектно-ориентированным языком, то, естественно, в нем можно создавать классы (с помощью ключевого слова class), но поначалу можно обойтись и без них. В языке предусмотрено большинство управляющих структур, доступных в других языках, — это циклы for, while, условный оператор if (правда, нет оператора case, но он легко эмулируется с помощью вышеперечисленных). С помощью блоков try-except-else и try-finally реализован перехват исключений, а с помощью оператора raise можно возбуждать свои. С версии 2.0 полностью поддерживается кодировка Unicode. В языке реализована работа с регулярными выражениями на уровне языка Perl, т.е. вы получаете удобный инструмент для работы со строками. Обращает внимание также интересная концепция поиска без учета регистра символов: вы можете предоставить собственное описание того, как каждый байт (т.е. символ) должен интерпретироваться при сравнении.

В Python реализован интерактивный режим работы. Это когда вы в командной строке вводите рython, а затем операторы языка, после чего программа сразу же выполняется (Рис. 1):

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

Да, файлы с текстом программы на Python можно создавать в любом обычном текстовом редакторе (наподобие блокнота), при этом расширение файла измените на .py. На Unix-подобных системах расширение не играет такой роли, поэтому если хотите, чтобы программа выполнялась, первой строкой впишите:

Кстати, о платформах, на которых может жить наш зверь. Создатели языка сделали то, что нам обещали еще в Java, т.е. поддержку всех имеющихся платформ. Более того, помимо так называемого СPython, написанного на С, есть еще реализация JPython, который состоит из интерпретатора Python, написанного на Java, и компилятора из Python в код Java, что позволяет писать апплеты на Питоне, а не на Джава, что намного легче и что избавляет от необходимости изучать двух языков программирования.

Рис. 1   Рис. 2   Рис. 3

В заключение хочу рассказать, где и что. Счастливым обладателям современного дистрибутива Linux, скорее всего, не придется лазить по Интернету в поисках дистрибутива и документации — и то и другое уже установлено на их компьютере (Рис. 2, 3). Более того, в /usr/share/doc/python вы можете найти и примеры программ, написанных на Python (Рис. 4). А живет наше пресмыкающееся в Интернете по адресу http://www.python.org(Рис. 5). Советую в разделе Documentation скачать сразу всю документацию единым архивом (Рис. 6, 922 Кб). После распаковки архива вы получите 8 Мб текста, осилив которые, вы перестанете беспокоиться за свое будущее: даже если не захотите программировать на Python, сможете устроиться куда-нибудь переводчиком :-). А в разделе Comparisons для сомневающихся доходчиво объяснят, почему вы должны программировать именно на Python. Наконец, зайдя в Download, найдете сам дистрибутив для большинства платформ. И еще. Более года назад, когда я впервые обратил внимание на этот язык, в рунете информации по нему практически не было (уанет — это, по-моему, скорее диагноз, чем web-сектор). Теперь же, набрав в строке браузера http://www.python.ru, я был приятно удивлен, когда мой запрос достиг цели (Рис. 7). Ресурс, видать, еще молодой, в основном содержит ссылки на статьи на других сайтах, но есть и свои материалы. И еще: на сайте http://cache.girmet.ru/~nv/pythonя нашел неплохой перевод части документации по Python, так что отправная точка путешествия по Интернету для вас может быть именно здесь (особенно если с англицким не очень :-)).

Рис. 4   Рис. 5   Рис. 6

Рис. 7

А теперь пару слов о том, кто. Я не думаю, что матерые программисты будут толпами переходить на новый язык программирования, хотя, учитывая легкость в освоении и скорость при написании новых программ, отказываться от его использования не стоит. Например, за один вечер я освоил основные операторы и функции, благо создатели не старались выдумать что-нибудь этакое, а в следующий вечер уже создавал простейшие сетевые программы. А вот пользователям, которые не являются программистами по специальности, но используют компьютеры в своей работе (учителя, математики, физики) следовало бы обратить внимание на диковинного зверя. Пора потеснить BASIC и Pascal. Так же (это уже моя собственная теория), как стихи каких-нибудь поэтов нравятся одним, но совсем не нравятся другим, так и каждый язык программирования отражает образ мышления, если хотите, склад характера своего создателя. Мы имеем легкий, но иногда нелогичный VB (создавала-то его целая толпа разработчиков), скрупулезный Pascal, серьезный С, мой любимый Perl, девиз которого: «Всегда найдется другой путь решения задачи». Так может, Python — это как раз то, что вы искали?

Рекомендуем ещё прочитать:






Данную страницу никто не комментировал. Вы можете стать первым.

Ваше имя:
Ваша почта:

RSS
Комментарий:
Введите символы или вычислите пример: *
captcha
Обновить





Хостинг на серверах в Украине, США и Германии. © sector.biz.ua 2006-2015 design by Vadim Popov