Найти в Дзене
Серега программист

Python с нуля №2. Операторы и выражения

Введение Почти все логически строки в вашей программе будут содержать выражения. Простой пример выражения это 3 * 4. Все выражения делятся на операторы и операнды. Операторы Операторы - это функционал, который производит какие-либо действия, они могут быть представлены в виде символов или специальных слов. Операнды Операнды - это данные над которыми операторы производят действия. В примере выше * является оператором, а 3 и 4 - операнды. Операторы + Сложение Суммирует два объекта 7 + 2 даст 9; 'a' + 'b' даст 'ab' - Вычитание Даёт разность двух чисел; если первый операнд отсутствует, он считается равным нулю -7,5 даст отрицательное число, а 45 - 6 даст 39. * Умножение Даёт произведение двух чисел или возвращает строку, повторённую заданное число раз. 3 * 3 даст 9. 'na' * 3 даст 'nanana'. ** Возведение в степень Возвращает число х, возведённое в степень y 2 ** 4 даст 16 (т.е. 2 * 2 * 2 * 2) / Деление Возвращает частное от деления x на y 4 / 3 даст 1.3333333333333333. // Цело
Оглавление

Введение

Почти все логически строки в вашей программе будут содержать выражения. Простой пример выражения это 3 * 4. Все выражения делятся на операторы и операнды.

Операторы

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

Операнды

Операнды - это данные над которыми операторы производят действия.

В примере выше * является оператором, а 3 и 4 - операнды.

Операторы

+ Сложение

Суммирует два объекта

7 + 2 даст 9; 'a' + 'b' даст 'ab'

- Вычитание

Даёт разность двух чисел; если первый операнд отсутствует, он считается равным нулю

-7,5 даст отрицательное число, а 45 - 6 даст 39.

* Умножение

Даёт произведение двух чисел или возвращает строку, повторённую заданное число раз.

3 * 3 даст 9. 'na' * 3 даст 'nanana'.

** Возведение в степень

Возвращает число х, возведённое в степень

y 2 ** 4 даст 16 (т.е. 2 * 2 * 2 * 2)

/ Деление

Возвращает частное от деления x на y

4 / 3 даст 1.3333333333333333.

// Целочисленное деление

Возвращает неполное частное от деления

4 // 3 даст 1. -4 // 3 даст -2.

% Деление по модулю

Возвращает остаток от деления

8 % 3 даст 2. -25.5 % 2.25 даст 1.5.

<< Сдвиг влево

Сдвигает биты числа влево на заданное количество позиций. (Любое число в памяти компьютера представлено в виде битов - или двоичных чисел, т.е. 0 и 1)

2 << 2 даст 8. В двоичном виде 2 представляет собой 10. Сдвиг влево на 2 бита даёт 1000, что в десятичном виде означает 8.

>> Сдвиг вправо

Сдвигает биты числа вправо на заданное число позиций.

11 >> 1 даст 5. В двоичном виде 11 представляется как 1011, что будучи смещённым на 1 бит вправо, даёт 101, а это, в свою очередь, не что иное как десятичное 5

& Побитовое И

Побитовая операция И над числами

5 & 3 даёт 1.

| Побитовое ИЛИ

Побитовая операция ИЛИ над числами 5 | 3 даёт 7

^ Побитовое ИСКЛЮЧИТЕЛЬНО ИЛИ

Побитовая операция ИСКЛЮЧИТЕЛЬНО ИЛИ

5 ^ 3 даёт 6

~ Побитовое НЕ

Побитовая операция НЕ для числа x соответствует -(x+1)

~5 даёт -6.

< Меньше

Определяет, верно ли, что x меньше y. Все операторы сравнения возвращают True или False1 . Обратите внимание на заглавные буквы в этих словах.

5 < 3 даст False, а 3 < 5 даст True. Можно составлять произвольные цепочки сравнений: 3 < 5 < 7 даёт True.

> Больше

Определяет, верно ли, что x больше y

5 > 3 даёт True. Если оба операнда - числа, то перед сравнением они оба преобразуются к одинаковому типу. В противном случае всегда возвращается False.

<= Меньше или равно

Определяет, верно ли, что x меньше или равно y

x = 3; y = 6; x <= y даёт True.

>= Больше или равно

Определяет, верно ли, что x больше или равно y

x = 4; y = 3; x >= 3 даёт True.

== Равно

Проверяет, одинаковы ли объекты

x = 2; y = 2; x == y даёт True. x = 'str'; y = 'stR'; x == y даёт False. x = 'str'; y = 'str'; x == y даёт True.

!= Не равно

Проверяет, верно ли, что объекты не равны

x = 2; y = 3; x != y даёт True.

not Логическое НЕ

Если x равно True, оператор вернёт False. Если же x равно False, получим True.

x = True; not x даёт False.

and Логическое И

x and y даёт False, если x равно False , в противном случае возвращает значение y

x = False; y = True; x and y возвращает False, поскольку x равно False. В этом случае Python не станет проверять значение y, так как уже знает, что левая часть выражения "and" равняется False, что подразумевает, что и всё выражение в целом будет равно False, независимо от значений всех остальных операндов. Это называется укороченной оценкой булевых (логических) выражений.

or Логическое ИЛИ

Если x равно True, в результате получим True, в противном случае получим значение y

x = True; y = False; x or y даёт True. Здесь также может производиться укороченная оценка выражений.

Краткая запись математических операций

Если вам нужно одновременно выполнить математическую операцию и присвоить ее значение переменной, вы можете кратко реализовать эту запись:

а = а * 3

тоже самое что и

а *= 3

Так же со всеми мат. операциями

Порядок вычисления

Все операторы в python имеют свой приоритет, чем выше приоритет, тем раньше будет выполнено это действие. Далее операторы расставлены начиная с самого низкого приоритета.

lambda лямбда-выражение

or Логическое «ИЛИ»

and Логическое «И»

not x Логическое «НЕ»

in, not in Проверка принадлежности

is, is not Проверка тождественности

<, <=, >, >=, !=, == Сравнения

| Побитовое «ИЛИ»

^ Побитовое «ИСКЛЮЧИТЕЛЬНО ИЛИ»

& Побитовое «И»

<<, >> Сдвиги

+, - Сложение и вычитание

*, /, //, % Умножение, деление, целочисленное деление и остаток от деления

+x, -x Положительное, отрицательное

~x Побитовое НЕ

** Возведение в степень

x.attribute Ссылка на атрибут

x[индекс] Обращение по индексу

x[индекс1:индекс2] Вырезка

f(аргументы ...) Вызов функции

(выражения, ...) Связка или кортеж

[выражения, ...] Список {ключ:данные, ...} Словарь

Изменение порядка вычисления

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

Решим простую задачу на вычисление площади и периметра прямоугольника.

length = 5

breadth = 2

area = length * breadth

print('Площадь равна', area)

print('Периметр равен', 2 * (length + breadth))

Вывод:

Площадь равна 10

Периметр равен 14

Примечание.

Вы можете выводить значение переменной в print() после запятой, не приводя его к типу данных str.

Заключение

Сегодня мы разобрались как пользоваться операндами, операторами и выражениями. Все это является основными блоками для создания любой программы. Далее мы рассмотрим как все это можно применять на практике.