Ускоритель Интернета! Бесплатно!

Поставь себе Marketscore!
Поставь!

Marketscore - хит сезона!
Сервис, практически вдвое увеличивающий скорость загрузки вашим браузером страниц и сайтов в Интернете. В среднем, скорость загрузки вэбстраниц с графикой и текстом ускоряется на 75%. 
Особенно заметен выигрыш, если у вас медленный модем или вы выходите в Интернет на маленьких скоростях (до 56 Кб/сек).
Подробнее...
Если вы видите здесь эту рекламу, значит увидят и вашу рекламу...

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

Сергей Яремчук

С ростом вычислительной мощи компьютерной техники изменились требования, предъявляемые к языкам программирования. В приложениях, не особенно критичных к скорости выполнения, стали применяться интерпретируемые языки программирования. Также толчок к росту популярности таких языков дал 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, а затем операторы языка, после чего программа сразу же выполняется:

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

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

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

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

Источник: http://www.mycomp.com.ua/

 


Copyright © "Internet Zone"info@izcity.com 
Копирование и использование данных материалов разрешается только в случае указания на журнал "Internet Zone", как на источник получения информации. При этом во всех ссылках обязательно явное указание адреса вэб-сайта http://www.izcity.com/.
При наличии у копируемого материала авторов и источника информации - их также нужно указывать, наряду со ссылкой на нас. Подробнее условия использования материалов смотрите здесь.