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