Операторы и выражения в Python
upd:
30.2K
2

Операторы и выражения в Python

Большинство строк программного кода представляют собой выражения. Например: 1 + 2 — это выражение. Выражение состоит из 2 частей:

  • Оператор (+) — функционал, представленный в виде символов (например + ==) или зарезервированных слов (например and not).
  • Операнды (1 и 2) — это данные, над которыми производится действия.
Выражение в Python состоит из оператора и операндов.

После того как Python-интерпретатор вычислит выражение, мы можем, как в примере выше, присвоить результат переменной sum. Или, например, сразу вывести результат на экран:

>>> print(1 + 2) 3

Операторы сравнения

Рассмотрим простой пример — 1 + 2 == 3.

Для проверки истинности данного условия, используется логический тип. Когда мы выполним данное выражение, в результате нам вернется True (истина) или False (ложь).

>>> 1 + 2 == 3 True

В данном примере мы используем один из операторов сравнения — "==" (равно). Всего в Python таких операторов 6:

  • == — равно;
  • != — не равно;
  • > — больше;
  • < — меньше;
  • >= — больше или равно;
  • <= — меньше или равно.
>>> 1 == 2 False >>> 1 != 2 True >>> 1 > 2 False >>> 1 < 2 True >>> 1 >= 2 False >>> 1 <= 2 True

Логические операторы

Правила выполнения логических операций соответствуют таблицам истинности. В Python 3 логических оператора:

  • or — логическое "ИЛИ";
  • and — логическое "И";
  • not — логическое отрицание.
>>> (1 + 1 == 2) or (2 * 2 == 5) True >>> (1 + 1 == 2) and (2 * 2 == 5) False >>> (1 + 1 == 2) and not (2 * 2 == 5) True

Арифметические операторы

Арифметические операторы в Python производят арифметические операции над числами (сложение, вычитание, деление и т.д.);

  • + — сложение;
  • - — вычитание;
  • * — умножение;
  • / — деление;
  • // — целочисленное деление (возвращает только целую часть от деления, значение после запятой отбрасывается);
  • % — деление по модулю (возвращает остаток от деления);
  • ** — возведение в степень.
>>> 1 + 2 3 >>> 1 - 2 -1 >>> 1 * 2 2 >>> 1 / 2 0.5 >>> 10 // 3 3 >>> 10 % 3 1 >>> 3 ** 2 9

Операторы присваивания

Операторы присваивания в Python работаю вполне очевидно — значение находящееся справа присваивается переменной, находящейся слева. Существует несколько разновидностей операторов присваивания:

  • = — значение правого операнда присвоится левому операнду;
  • += — сумма левого и правого операнда присвоится левому операнду;
  • -= — разность левого и правого операнда присвоится левому операнду;
  • *= — произведение левого и правого операнда присвоится левому операнду;
  • /= — разделит левый операнд на правый и результат присвоится левому операнду;
  • //= — результат целочисленного деления левого операнда на правый операнд присвоится левому операнду;
  • %= — разделит левый операнд на правый по модулю и результат присвоится левому операнду;
  • **= — возведет левый операнд в степень правого и результат присвоится левому операнду.
>>> a = 10 >>> print(a) 10 >>> a = 10 >>> a += 1 # аналогично a = a + 1 >>> print(a) 11 >>> a = 10 >>> a -= 2 # аналогично a = a - 2 >>> print(a) 8 >>> a = 10 >>> a *= 2 # аналогично a = a * 2 >>> print(a) 20 >>> a = 10 >>> a /= 2 # аналогично a = a / 2 >>> print(a) 5.0 >>> a = 10 >>> a //= 3 # аналогично a = a // 2 >>> print(a) 3 >>> a = 10 >>> a %= 3 # аналогично a = a % 2 >>> print(a) 1 >>> a = 10 >>> a **= 2 # аналогично a = a ** 2 >>> print(a) 100

Python поддерживает не только обычное присваивание правого операнда левому, но и множественное присваивание.

Множественное присваивание в Python
>>> a, b, c = 1, "python", [1,2,3] >>> print(a, b, c) 1 python [1, 2, 3]

С помощью такого присваивания можно поменять значения переменных между собой:

>>> a = 1 >>> b = 2 >>> a, b = b, a >>> print(a, b) 2 1

Также с помощью множественного присваивания можно "распаковывать" строки (str), списки (list), кортежи (tuple) и словари (dict).

Распаковка особенно удобна, когда функция возвращает несколько значений в виде кортежа (tuple):

>>> def test_page(): return 404, "Not found" >>> code, message = test_page() >>> print(code, message) 404 Not found

Главное условие распаковки – количество элементов должно совпадать

Если необходимо распаковать лишь несколько элементов, воспользуйтесь переменной со знаком "*":

>>> text = "deactivate" >>> first, second, *other_letters = text >>> print(first, second, other_letters) d e ['a', 'c', 't', 'i', 'v', 'a', 't', 'e']

Побитовые операторы

Данные операторы предназначены для работы с данными в битовом (двоичном) формате. Про битовые операции смотрите статью на википедии.

  • ~ — побитовое отрицание (для него требуется только один операнд);
  • & — побитовое "И";
  • | — побитовое "ИЛИ";
  • ^ — исключающее "ИЛИ";
  • << — побитовый сдвиг влево;
  • >> — побитовый сдвиг вправо.
Пример побитовых операций в Python.
>>> a = 11 >>> b = 34 >>> a & b 2 >>> a | b 43 >>> (a ^ b) 41 >>> ~a -12 >>> a << 1 22 >>> a >> 2 5

Операторы членства

В Python существует всего 2 оператора принадлежности — in и not in и предназначены они для проверки наличия элемента в строке (str), списке (list), словаре (dict) или кортеже (tuple).

  • in — возвращает True если элемент присутствует в последовательности;
  • not in — возвращает True если элемент отсутствует в последовательности.
>>> "host" in "host=local" True >>> 2 in [1,2,4,5] True >>> "one" in {"one": 1, "two": 1} # в словаре проверка по ключам True >>> True in ("string", 2, True) True >>> "str" not in ("string", 2, True) True

Операторы тождественности

Данные операторы сравнивают размещение двух объектов в памяти.

  • is — возвращает True если оба операнда указывают на один и тот же объект;
  • is not — возвращает True если оба операнда указывают на разные объекты.
>>> x = 5 >>> type(x) is int True >>> x = 5.1 >>> type(x) is int False >>> x = [1, 2, 3] # id(x) = 64620552 >>> y = [1, 2, 3] # id(y) = 60529960 >>> x is y False

Приоритет операторов

Таблица приоритетов операторов в Python показана ниже.

Таблица приоритетов выполнения операторов в Python.

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

Например, в выражении 1 + 2 ** 2 * 10 сначала выполнится возведение в степень, далее умножение, потом сложение. Итого результат: 41.

10
😭
4
😕
8
😃
69
😍
Комментарии (2)
Фёдор Цыганков
1 год 6 месяцев назад

Извините, но я всё равно не могу сделать одно задание по Python! Помогите чем-нибудь.

0
ответить
Pythonchik
1 год 4 месяца назад

Напишите нам на почту: info@pythonchik.ru

2
ответить
Может понравиться
Как работает Python - интерпретатор, байт-код, PVM
Основы
upd:
Как работает Python: интерпретатор, байт-код, PVM