Еще одно ненужное руководство по Python: Введение.

Данная статья рассчитана на тех, кто ничего не знает о Python или же только слышал о нем, но не видел.

Python — это современный интерпретируемый язык программирования с динамической типизацией. Наиболее похожими на него языками являются PHP, Perl и Ruby.

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

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

Хватит пустой болтовни, давайте сразу к делу.

Как, вы еще не установили Python?

Во всех популярных дистрибутивах GNU/Linux и Unix-системах питон уже стоит по умолчанию. Если же вы являетесь пользователем Windows, то вам дорога на сайт питона и скачиваете его, устанавливаете.

Сейчас существует две ветки питона – 2.x и 3.x. 3-я ветка сравнительно молодая и потому на ней мало кто пишет. Так получилось, что разработчики питона сильно переработали язык, поэтому мгновенно перейти со второго питона на третий не получится. В данной статье говорится о Python версии 2.x.

Hello world!

Наконец-то вы установили питон, открываете терминал и вводите там заветное слово “python”. Если вы под Windows, то “Пуск” → “Все программы” → “Python”.

И вот мы видим что-то подобное:

Python 2.6.5 (r265:79063, Apr  1 2010, 05:28:39) 
[GCC 4.4.3 20100316 (prerelease)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 

Будем считать, что Python поздоровался с нами. А заодно он рассказал нам о своей версии, о том, каким компилятором он собран и операционной системе, под которой он работает. Убедитесь, что версия вашего питона не меньше, чем 2.6.

По всем традициям…

>>> print "Hello world!"
Hello world!

Думаю, комментарии излишни. Строки в питоне заключаются в “” или в ”. Также вы можете подсунуть в print любое число. Можете также подсунуть ему несколько элементов через запятую.

Типы переменных

Не вдаваясь в глубокие подробности, скажу, что в Python есть привычные всем типы: целое число, число с плавающей точкой (вещественное), булевы переменные (True и False), строка, массивы. Есть еще тип None – пустота. Обратите внимание, нету отдельного типа для символа (аналога char).

>>> type(1)
<type 'int'>
>>> type(3.14159)
<type 'float'>
>>> type("Hello!")
<type 'str'>
>>> x = "Hello!"
>>> type(x)
<type 'str'>
>>> x[0]
'H'
>>> type(x[0])
<type 'str'>
>>> y = [3, 2, 1]
>>> y[1]
2
>>> type(y)
<type 'list'>

Python – язык с динамической типизацией. У переменных нет строго заданного типа:

>>> type(y)
<type 'list'>
>>> type(x[0])
<type 'str'>
>>> abc = "Hello!"
>>> type(abc)
<type 'str'>
>>> abc = 123
>>> type(abc)
<type 'int'>
>>> 123 == 123
True
>>> 123 == "123"
False

Условные операции

Условные операции выглядят так:

>>> if 1 == 2:
...     print "1 equals 2"
...     print "You'll newer see this string"
... elif 3 == 4:
...     print "Python compares wrong"
... else:
...     print "Everything is OK"
... 
Everything is OK

Обратите внимание, что мы оканчиваем ввод пустой строкой.

И тут у вас должна возникнуть мысль: “Парень, ты забыл заключить блок в фигурные скобки!” Нет, никаких фигурных скобок, блоки в питоне расставляются с помощью отступов. Да, нету никаких “Begin” и “End;”, нету “{” и “}”, есть только пробелы.

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

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

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

Вернемся к условной операции. Также как во многих языках, здесь есть if и else. Также добавился elif, который, по сути, является заменой конструкции else if.

Циклы

Циклы в питоне делаются так:

>>> for x in xrange(5):
...     print "Loop iterator is", x
... 
Loop iterator is 0
Loop iterator is 1
Loop iterator is 2
Loop iterator is 3
Loop iterator is 4

Или так:

>>> i = 5
>>> while i > 0:
...     print i
...     i -= 2
... 
5
3
1

Цикл for перебирает все значения в списке. В данном случае он перебирает элементы xrange(5) – это все элементы от 0 до 5. Также существует функция range, которая делает почти то же самое. Подробнее об их различиях я расскажу в других статьях, а пока что я порекомендую везде использовать xrange.

С циклом while, надеюсь, все понятно.

Аналога цикла repeat-until или do-while в питоне нет. Увы. Его частенько не хватает.

Функции

Ну и под конец расскажу как объявлять элементарные функции:

>>> def foo():
...     print "Hello foo"
... 
>>> foo()
Hello foo
>>> def plus(x, y):
...     print x, "+", y, "is", x + y
... 
>>> plus(5, 7)
5 + 7 is 12
>>> def minus(x, y):
...     z = x - y
...     print x, "-", y, "is", z
...     return z
... 
>>> plus(minus(2, 1), minus(3, 2))
2 - 1 is 1
3 - 2 is 1
1 + 1 is 2

Тут все просто: пишем ключевое слово def, потом название функции, потом в скобках список аргументов, двоеточие и само тело функции. Возвращаем значение с помощью return. Если return в теле функции нет, то Python вернет None – пустой тип, аналог NULL в C или nil в паскале.

Встроенная справка

В питоне есть встроенная справка для всех стандартных объектов. Например, если вы хотите узнать побольше о промелькнувшем ранее xrange, то введите в интерпретаторе help(xrange).

Кстати, если в качестве аргумента help() засунуть какую-либо переменную, то появится справка о типе этой переменной. Попробуйте ввести x = 123, а затем help(x).

Заключение к введению

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

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