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