Введение
Этот документ — краткая справка. За подробностями лучше обращаться к официальной документации.
Общая структура программы
Программа на языке 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}
Семантика формул
Подробнее про семантику формул можно прочитать в соответствующем разделе.