Инструкции, выражения и операторы в Python
Инструкции в Python
Пример №1. Виды и формы инструкций в Python.
Основные виды инструкций
Основные виды инструкций
Основные виды инструкций
Выражения в Python
Пример №2. Использование выражений в Python.
Основные виды выражений
Основные виды выражений
Основные виды выражений
Операторы в Python
Пример №3. Использование операторов в Python.
Таблица №1. Основные операторы языка Python.
Итоги
Итоги
Итоги
Итоги
Итоги
559.00K
Category: programmingprogramming

Инструкции, выражения и операторы в Python

1. Инструкции, выражения и операторы в Python

Инструкции в Python
Выражения в Python
Операторы в Python

2. Инструкции в Python

Инструкция языка
программирования (от англ. statement)
это
команда
на
языке
программирования,
посредством
которой компьютеру сообщается о
необходимости
выполнения
одного
определенного шага по обработке
порции информации.

3.

• По
сути,
любой
python-скрипт
представляет собой не что иное, как
некоторую
последовательность
инструкций, которая может состоять из
десятков, сотен, тысяч или даже сотен
тысяч и миллионов инструкций (см.
пример №1).
• Все зависит от того, сколько инструкций
потребуется для того, чтобы описать все
шаги, необходимые для достижения целей
программы.

4. Пример №1. Виды и формы инструкций в Python.

Пример №1. Виды и формы инструкций в Python.

5.

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

6. Основные виды инструкций

a = b – это инструкция присваивания (например, a = 5**2 - 3 или b
= len([1, 2, 3])). Помимо этого имеются и другие формы
присваивания: комбинированные инструкции присваивания
(например, a += 5 или b **= 7), позиционное присваивание
(например, a, b = 5, 7 или [a, b] = 'AB'), операция распаковывания
последовательностей (например, a, *b = 1, 2, 3 или a, *b, c =
'ABCDEF'), а также групповое присваивание одного значения
(например, a = b = c = 5).
Алгоритм присваивания у всех этих форм несколько
отличается, но главная цель у них одна – это создание ссылок на
объекты и сохранение их в переменных.
def – определение функций и методов. Например, def my_func(a,
b, c=0, *d): return a + b + c + d[0].
return – возврат результата из функций и методов.
yield – инструкция возврата результата из функции-генератора с
сохранением состояния ее локальных переменных. При
повторном вызове такой функции выполнение, в отличие от
инструкции return, продолжается с ключевого слова yield, на
котором ее работа была прервана ранее.

7. Основные виды инструкций

class – определение классов. Например, class MyСlass: pass.
pass – пустая инструкция-заполнитель.
global – инструкция объявления используемых переменных
глобальными (если переменных несколько, то они
перечисляются через запятую).
nonlocal – инструкция используется во вложенных функциях
и объявляет переменные нелокальными. В результате
интерпретатор будет использовать переменные с
указанными именами из ближайшей области видимости
(т.е. объемлющей функции), исключая глобальную.
if/elif/else – условная инструкция.
for/else – инструкция обхода последовательности в цикле.
while/else – цикл общего назначения.
break – инструкция выхода из цикла.
continue – инструкция перехода в начало цикла.

8. Основные виды инструкций

import – инструкция импорта всех доступных имен из указанных
модулей (модули присваиваются по одному за одну инструкцию,
хотя допускается и по несколько за раз, но тогда они
перечисляются через запятую).
from/import – инструкция импорта из модуля только указанных
имен (имена перечисляются через запятую). Например, from math
import pi as p, tau as t.
try/except/finally – инструкция обработки исключений.
raise – инструкция возбуждения исключений.
assert – инструкция отладки, которая позволяет производить
проверку истинности утверждений и выводить сообщение об
ошибке. Например, assert x > y, 'Значение x недопустимо мало!'.
with/as – менеджер контекста.
del – инструкция удаления ссылок на объекты (если ссылок
несколько, то они перечисляются через запятую). Например, del a,
b[0], c['car'] .

9.

Отметим, что список инструкций языка Python постоянно
изменяется. Происходит это не сразу, но после выхода
очередных версий языка регулярно появляются новые виды
инструкций, а некоторые старые виды постепенно
обновляются или вообще удаляются.
Что касается вызовов функций, генераторов и других
выражений, то они тоже являются инструкциями, но при
этом их выделяются в особую группу за счет следующих
особенностей:
• могут объединяться операторами в сколь угодно
длинные
конструкции,
которые
в
итоге
последовательных
операций
вычисляются
интерпретатором и возвращаются в виде одного
единственного значения (объекта некоторого типа);
• могут использоваться внутри других инструкций,
являясь их составной частью.

10.

• Например, инструкция присваивания
res = 5 + my_func(1, 2)
• содержит в правой части выражение,
включающее вызов функции. Однако в
результате вычислений в переменной
сохранится ссылка лишь на один итоговый
объект.

11.

• В отличие от выражений обычные
инструкции в Python не могут
использоваться там, где ожидается
значение.
• Поэтому их нельзя использовать в
качестве аргументов функций, правой
части
присваиваний,
в
качестве
операций или возвращаемых значений.
• Например, если в инструкции выше
заменить
вызов
функции
ее
определением в виде res = 5 + (def
my_func(a, b): return a + b),
интерпретатор возбудит исключение.

12.

По умолчанию интерпретатор Python выполняет инструкции
последовательно одна за другой в порядке их следования в коде.
Однако ряд специальных инструкций, называемых управляющими
конструкциями, позволяют изменять ход выполнения программы по
умолчанию. К ним относятся:
• условные инструкции, такие как if/else или if/elif/else, которые
указывают интерпретатору Python на выполнение или пропуск
других инструкций в зависимости от значения условного
выражения;
• инструкции циклов, такие как for/in или while, которые указывают
интерпретатору на многократное выполнение других инструкций;
• инструкции переходов, такие как break, continue или return,
которые указывают интерпретатору на выполнение перехода в
другую часть программы;
• инструкции
обработки
исключений,
такие
как try/except/else или try/except/finally, которые указывают
интерпретатору на выполнение перехода в другую часть программы
в случае возникновения ошибок.

13. Выражения в Python

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

14.

Выражения делятся на простые (первичные) и
сложные.
• Простые выражения не могут быть
разделены
на
еще
более
простые
выражения.
К ним относятся, например, литералы,
инициализированные переменные, вызовы
функций.
• Сложные выражения составляются из более
простых
при
помощи
различных
операторов, которые позволяют выполнять
такие операции, как сложение, вычитание,
конкатенация и другие (см. пример №2).

15. Пример №2. Использование выражений в Python.

Пример №2. Использование выражений в Python.

16.

• В примере выше простые выражения литерального
значения (например, 10, (0, 1, 2, 3), int), выражения
переменных (например, x или res) и выражения
вызовов функций (например, type(res) или более
сложный вызов анонимной функции (lambda a, b: a +
b)(li[0], li[1])) посредством операторов объединяются
в более длинные смешанные выражения.
• Однако все эти примеры далеко не предел, т.к.
выражения могут использоваться везде, где
интерпретатор ожидает получить значение.
• Выражения могут выглядеть довольно длинными и
сложными, но в результате вычислений на выходе
интерпретатор все равно будет оперировать каким-то
одним результирующим значением.

17. Основные виды выражений

• Выражения литерального значения – это литералы в
коде программы,
например, 'ten' (строка), 10 (число), ['ten', 10] (список)
или list (объект).
• Выражения переменных – обычные
инициализированные переменные, например, res в
выражении res in [900, 1000] (здесь переменная уже
инициализирована, а значит обращение к ней
возвращает значение, сохраненное в памяти под данным
именем).
• Арифметические выражения – используются привычные
нам математические операторы, например, a + b**3.

18. Основные виды выражений

• Условные выражения или выражения сравнения –
используются операторы сравнения, например, a <= b.
• Выражения с логическими операторами – используются
логические операторы, например, a > b and a < c.
• Выражения с побитовыми операторами – используются
побитовые операторы, например, a&b.
• Выражения с операторами принадлежности –
используются операторы принадлежности
(членства) in и not in, например, 5 in [1, 2, 3].
• Выражения с операторами идентичности – используются
операторы идентичности is и is not, например, 5 is not '5'.
• Вызовы функций и методов – это тоже выражения, т.к.
они явно или неявно возвращают результат, например, f(3,
5).

19. Основные виды выражений

• Генераторы – генераторы выражений, списков, словарей,
множеств. Например, {simb for simb in '123'}.
• lambda-выражения – это специальные конструкции,
которые позволяют встраивать определения функций в
программный код выражений. Их еще
называют анонимными функциями. Например, 5**2 +
(lambda x, y: x - y)(5, 2).
• Выражения присваивания – используется моржовый
оператор :=, который позволяет присваивать значения
непосредственно в выражении. Например, x = 5 + (y:=5).
• Трехместные выражения if/else – эти конструкции
позволяют использовать в выражениях условную
инструкцию if/else в ее простейшей форме. Например, x =
True if y > 0 else False.

20. Операторы в Python

• Операции (от англ. operations) – это те
действия, которые мы выполняем над
переменными и объектами.
• Операторы (от англ. operators) – это элементы
программного кода, которые используются
для указаний программе на выполнение
определенных действий в выражении. Проще
говоря, операторы – это символьные
обозначения команд, с помощью которых мы
выполняем операции.

21.

• Примерами выражений с использованием
операторов могут служить a + b, a != b, -b, a >
b, (b + 7)/(5 - 3**2) и др. Здесь символы и
комбинации символов +, !=, **, -, /, > и есть
операторы.
• Кстати,
выражения
или
значения,
расположенные по сторонам операторов,
называют операндами.

22.

• Большинство операторов обрабатывают свои
операнды в определенном направлении.
• Это свойство принято
называть ассоциативностью.
• Одни операторы выполняют обработку своих
операндов слева направо, обладая левой
ассоциативностью, другие обладают правой
ассоциативностью, выполняя обработку в
обратном направлении, т.е. справа налево.
• Также существуют операторы не имеющие
ассоциативности.

23.

• Кроме
того,
операторы
могут
отличаться
своим приоритетом, который определяет порядок
(очередность) их выполнения в ходе вычисления
значения выражения.
• Первыми обрабатываются операторы с более
высоким приоритетом, затем операторы с более
низким приоритетом и так далее по мере убывания
их приоритетности. Е
• Если приоритет операторов одинаков, они
группируются и обрабатываются либо согласно их
ассоциативности,
либо
в
соответствии
с
установленным для них порядком (это касается
операторов, у которых ассоциативность отсутствует).
Также отметим, что для принудительного
указания
порядка
выполнения
операторов
используются круглые скобки (см. пример №3).

24. Пример №3. Использование операторов в Python.

Пример №3. Использование операторов в Python.

25.

• Основные операторы языка Python,
использующиеся в выражениях, в
порядке убывания их приоритетов в
таблице №1.
• Чем ниже приоритет, тем ниже
находится строка с соответствующими
операторами.
• Если операторы имеют одинаковый
приоритет, они перечисляются в одной
и той же строке таблицы.

26. Таблица №1. Основные операторы языка Python.

Таблица №1. Основные операторы языка Python.
Оператор
Описание
Ассоциативность
**
Возведение в степень
Справа налево
~
+
-
Побитовое отрицание
(инверсия битов)
Унарный плюс
Унарный минус
Справа налево
*
/
%
//
Умножение
Деление
Деление по модулю
Целочисленное деление
Слева направо
+
-
Сложение
Вычитание
Слева направо
<<
>>
Побитовый сдвиг влево
Побитовый сдвиг вправо
Слева направо
&
Побитовое and (И)
Слева направо

27.

^
Побитовое xor
(исключающее ИЛИ)
Слева направо
|
Побитовое or (ИЛИ)
Слева направо
<
<=
>
>=
==
!=
is, is not
in, not in
Меньше
Меньше или равно
Больше
Больше или равно
Равно
Не равно
Операторы
тождественности
Операторы членства
Отсутствует
and
Логическое отрицание
(НЕ)
Логическое И
or
Логическое ИЛИ
Слева направо
:=
Моржовый оператор
(выражение
присваивания)
Справа налево
not
Справа налево
Слева направо

28.

• Старайтесь
всегда
использовать
скобки,
непосредственно
определяя
порядок
группировки и не полагаясь на приоритет или
ассоциативность операторов, поскольку это
облегчит сопровождение кода и поиск ошибок
как при наличии сложных выражений, так и в
случае изменения поведения операторов при
переходе от одной версии Python к другой
• Большинство операторов, приведенных в
таблице, являются бинарными, т.е. используются
с двумя операндами (например, +, -, !=). Есть
также операторы, которые работают только с
одним операндом, их называют унарными.
Примером может служить - (оператор отрицания
или унарный минус), который применяется для
смены знака числа на противоположный.

29. Итоги

• Инструкции – это команды на языке Python, которые
сообщают интерпретатору последовательность действий,
необходимых для достижения поставленных целей. По
умолчанию
интерпретатор
выполняет
инструкции
последовательно одна за другой в порядке их следования
в коде. Если нужно изменить выполнение хода программы
по умолчанию, используются управляющие конструкции:
условные инструкции, циклы, инструкции переходов или
инструкции обработки исключений.

30. Итоги

• Выражение – это любая единица исходного кода Python,
которая может быть вычислена интерпретатором для
получения значения.
• Сложные выражения составляются из более простых при
помощи различных операторов, которые позволяют
выполнять над объектами такие операции как сложение,
вычитание, сравнение и т.д.
• Но каким бы сложным не было выражение, в результате
последовательных вычислений на выходе интерпретатор
все равно будет оперировать каким-то одним
результирующим значением.
• Важно помнить, что на практике выражения практически
всегда входят в состав каких-либо инструкций, а вот
использование последних в выражениях недопустимо
(например, попытка выполнения инструкции d = if 3>k:
k=3 приведет к ошибке).

31. Итоги

• Операторы представляют собой символьные обозначения
команд, с помощью которых мы выполняем операции над
объектами. Выражения или значения, расположенные по
сторонам операторов, называют операндами.
• Если оператор используется с двумя операндами, его
называют бинарным. Если же оператор работает только с
одним операндом, его называют унарным. Так в
выражении -3 + (2 - 5)*7 операторы + и * представляют
собой бинарные операторы, а вот оператор - используется и
как бинарный оператор вычитания, и как унарный минус.

32. Итоги

• Большинство операторов обрабатывают свои операнды в
определенном направлении. Это свойство принято
называть ассоциативностью.
• Одни операторы выполняют обработку своих операндов
слева направо, обладая левой ассоциативностью, другие
обладают правой ассоциативностью, выполняя обработку в
обратном направлении, т.е. справа налево.
• Кроме того, существуют операторы не имеющие
ассоциативности. Так левой ассоциативностью, в основном
обладают бинарные операторы, правая ассоциативность
присуща унарным операторам, а операторы сравнения
вообще не обладают ассоциативностью.

33. Итоги

• Важным является и приоритет операторов, т.к. операторы с
большим
приоритетом
обрабатываются
первыми.
Например, значением выражения 2*7 + 4 будет 18, а не 22,
т.к. приоритет оператора умножения выше приоритета
оператора сложения.
• Если приоритет операторов одинаков, они группируются и
обрабатываются либо согласно их ассоциативности, либо в
соответствии с установленным для них порядком (это
касается
операторов,
у
которых
ассоциативность
отсутствует). В любом случае лучше всегда использовать
скобки, непосредственно определяя порядок группировки и
не полагаясь на приоритет или ассоциативность операторов.
English     Русский Rules