Введение

Этот документ — краткая справка. За подробностями лучше обращаться к официальной документации.

Общая структура программы

Программа на языке Python представляет собой последовательность команд (statements): каждая команда — на отдельной строчке (допускается также разделять некоторые команды точкой-с-запятой).

Самые частовстречающиеся команды:

  • вычислить значение формулы (оформляется этой самой формулой)
  • изменить что-нибудь (оформляется знаком =, справа от которого стоит формула, а слева — то, что нужно изменить)
  • ветвление (оформляется при помощи слов if, elif, else)
  • цикл (оформляется при помощи слов for или while)
  • определение подпрограмм (оформляется при помощи слова def)
  • использование внешнего модуля (оформляется при помощи слова import)

Также в программе могут встречаться комментарии, начинающиеся знаком # и длящиеся до конца строчки.

Синтаксис формул

Формулы (expressions) — отдельная грамматическая категория. Команды внутри формул не встречаются, а вот формулы являются частью почти всех команд!

Формулы составляются из литералов, переменных и операторов.

Переменные

С точки зрения грамматики переменная (variable/identifier) — одно слово, не совпадающее ни с одним из небольшого набора зарезервированных (таких как if, else и т.п.). В слове допускаются буквы, нижние подчёркивания, цифры (но цифра не может стоять в начале слова).

Значением (value/binding) переменной является объект, к которому она привязана в данный момент. Изменить привязку можно командой привязки:

переменная = формула

которая сначала вычисляет значение формулы, а потом привязывает указанную переменную к этому значению.

Допускается множественное изменение (в нём может участвовать и больше двух переменных, а также — более сложные конструкции с использованием агрегатных литералов):

переменная1, переменная2 = формула1, формула2

Операторы

Оператор применяется к одной или нескольким формулам, называемым операндами этого оператора. Количество таких формул называется арностью этого оператора.

Среди операторов наиболее часто встречаются:

  • вызов функции XXX(YYY)
  • доступ к атрибуту XXX.YYY
  • индексация коллекции XXX[YYY]
  • проверка на вхождение XXX in YYY
  • сумма XXX + YYY, разность XXX - YYY, произведение XXX * YYY
  • частное XXX / YYY, неполное частное XXX // YYY, остаток XXX % YYY
  • унарный минус -XXX
  • степень XXX ** YYY
  • эквивалентность XXX == YYY, неэквивалентность XXX != YYY
  • строгие неравенства XXX < YYY и XXX > YYY
  • нестрогие неравенства XXX <= YYY и XXX >= YYY
  • логические операции: не not XXX, и XXX and YYY, или XXX or YYY
  • поразрядные/поэлементные операции: и XXX & YYY, или XXX | YYY, сумма XXX ^ YYY

Литералы

Литералами называются специальные обозначения для некоторых объектов. Можно считать их операторами с уникальным (для каждого из них) синтаксисом и правилом вычисления.

Стандарт языка Python к литералам относит обозначения для текстовых и числовых литералов. По факту обозначения для некоторых коллекций и функций тоже зачастую относят к литералам (стандарт языка относит их к операторам).

Наиболее часто встречаются:

  • «тривиальное» значение None
  • булевы True и False
  • числа 123, 12.3, 1.23e1, 2+3j и тому подобное
  • тексты 'foo' или "foo" (одинарные и двойные кавычки не различаются)
  • функции lambda x,y: x + 2*y
  • списки (массивы) [1,2,3]
  • кортежи (неизменяемые массивы) (1,2,3)
  • множества {1,2,3}
  • словари (ассоциативные массивы) {"foo": 1, 3: "bar", 5+1: 3+1}

Семантика формул

Подробнее про семантику формул можно прочитать в соответствующем разделе.