- Операторы и выражения в Python
- Операторы сравнения
- Логические операторы
- Арифметические операторы
- Операторы присваивания
- Побитовые операторы
- Операторы членства
- Операторы тождественности
- Приоритет операторов
- Приоритеты операторов Python
- №29 Приоритетность и ассоциативность операторов / для начинающих
- Приоритетность операторов в Python
- Как работает приоритетность операторов в Python?
- Примеры приоритетов операторов
- Ассоциативность операторов
- Что такое ассоциативность в Python?
- Примеры
- Приоритет логических операций питон
- Что такое оператор?
- Арифметические операторы в Python:
- Операторы сравнения в Python:
- Операторы присваивания в Python:
- Побитовые операторы в Python:
- Логические операторы в Python:
- Операторы членства в Python:
- Операторы тождественности в Python:
- Приоритет операторов в Python
Операторы и выражения в Python
Большинство строк программного кода представляют собой выражения. Например: 1 + 2 — это выражение. Выражение состоит из 2 частей:
- Оператор (+) — функционал, представленный в виде символов (например + ==) или зарезервированных слов (например and not).
- Операнды (1 и 2) — это данные, над которыми производится действия.
После того как Python-интерпретатор вычислит выражение, мы можем, как в примере выше, присвоить результат переменной sum . Или, например, сразу вывести результат на экран:
Операторы сравнения
Рассмотрим простой пример — 1 + 2 == 3 .
Для проверки истинности данного условия, используется логический тип. Когда мы выполним данное выражение, в результате нам вернется True (истина) или False (ложь).
В данном примере мы используем один из операторов сравнения — «==» (равно). Всего в Python таких операторов 6:
Логические операторы
Правила выполнения логических операций соответствуют таблицам истинности . В Python 3 логических оператора:
Арифметические операторы
Арифметические операторы в Python производят арифметические операции над числами (сложение, вычитание, деление и т.д.);
- + — сложение;
- — — вычитание;
- * — умножение;
- / — деление;
- // — целочисленное деление (возвращает только целую часть от деления, значение после запятой отбрасывается);
- % — деление по модулю (возвращает остаток от деления);
- ** — возведение в степень.
Операторы присваивания
Операторы присваивания в 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’]
Побитовые операторы
Данные операторы предназначены для работы с данными в битовом (двоичном) формате. Про битовые операции смотрите статью на википедии .
- ~ — побитовое отрицание (для него требуется только один операнд);
- & — побитовое » И «;
- | — побитовое » ИЛИ «;
- ^ — исключающее » ИЛИ «;
- >> — побитовый сдвиг вправо.
>>> a = 11 >>> b = 34 >>> a & b 2 >>> a | b 43 >>> (a ^ b) 41 >>> ~a -12 >>> a >> a >> 2 5
Операторы членства
В Python существует всего 2 оператора принадлежности — in и not in и предназначены они для проверки наличия элемента в строке (str), списке (list), словаре (dict) или кортеже (tuple).
- in — возвращает True если элемент присутствует в последовательности;
- not in — возвращает True если элемент отсутствует в последовательности.
Операторы тождественности
Данные операторы сравнивают размещение двух объектов в памяти.
- is — возвращает True если оба операнда указывают на один и тот же объект;
- is not — возвращает True если оба операнда указывают на разные объекты.
Приоритет операторов
Таблица приоритетов операторов в Python показана ниже.
Элементы отсортированы по убыванию, с высокого приоритета к более низкому. В комбинациях с несколькими операторами, оператор с большим приоритетом выполняется первым.
Например, в выражении 1 + 2 ** 2 * 10 сначала выполнится возведение в степень, далее умножение, потом сложение. Итого результат: 41 .
Приоритеты операторов Python
Самые приоритетные операции вверху, снизу — с низким приоритетом. Вычисления выполняются слева направо, то есть, если в выражении встретятся операторы одинаковых приоритетов, первым будет выполнен тот, что слева.
Оператор возведения в степень исключение из этого правила. Из двух операторов ** сначала выполнится правый, а потом левый.
Операторы | Описание |
---|---|
() | Скобки |
** | Возведение в степень |
+x , -x , ~x | Унарные плюс, минус и битовое отрицание |
* , / , // , % | Умножение, деление, целочисленное деление, остаток от деления |
+ , — | Сложение и вычитание |
> | Битовые сдвиги |
& | Битовое И |
^ | Битовое исключающее ИЛИ ( XOR ) |
| | Битовое ИЛИ |
== , != , > , >= , < , | Сравнение, проверка идентичности, проверка вхождения |
not | Логическое НЕ |
and | Логическое И |
or | Логическое ИЛИ |
Мы используем файлы cookie
Наш сайт использует файлы cookie для улучшения пользовательского опыта, сбора статистики и обеспечения доступа к обучающим материалам. Мы также передаем информацию об использовании вами нашего сайт партерам по социальным сетям, рекламе и аналитике. В свою очередь, наши партнеры могут объединять ее с другой предоставленной вами информацией, или с информацией, которую они собрали в результате использования вами их услуг.
№29 Приоритетность и ассоциативность операторов / для начинающих
В этом материале рассмотрим приоритетность и ассоциативность операторов в Python. Тема очень важна для понимания семантики операторов Python.
После прочтения вы должны понимать, как Python определяет порядок исполнения операторов. У некоторых из них более высокий уровень приоритета. Например, оператор умножения более приоритетный по сравнению с операторами сложения или вычитания.
В выражении интерпретатор Python выполняет операторы с более высоким уровнем приоритета первыми. И за исключением оператора возведения в степень ( ** ) они выполняются слева направо.
Приоритетность операторов в Python
Как работает приоритетность операторов в Python?
Выражение — это процесс группировки наборов значений, переменных, операторов и вызовов функций. При исполнении таких выражений интерпретатор Python выполняет их.
Здесь «3 + 4» — это выражение Python. Оно содержит один оператор и пару операндов. Но в более сложных инструкциях операторов может быть и несколько.
Для их выполнения Python руководствуется правилом приоритетности. Оно указывает на порядок операторов.
Примеры приоритетов операторов
В следующих примерах в сложных выражениях объединены по несколько операторов.
# Сначала выполняется умножение
# потом операция сложения
# Результат: 17
5 + 4 * 3Однако порядок исполнения можно поменять с помощью скобок (). Они переопределяют приоритетность арифметический операций.
# Круглые скобки () переопределяют приоритет арифметических операторов
# Вывод: 27
(5 + 4) * 3Следующая таблица демонстрирует приоритетность операторов от высокой до самой низкой.
Операторы | Применение |
---|---|
Скобки (объединение) | |
f(args…) | Вызов функции |
x[index:index] | Срез |
x[index] | Получение по индексу |
x.attribute | Ссылка на атрибут |
** | Возведение в степень |
~x | Побитовое нет |
+x, -x | Положительное, отрицательное число |
*, /, % | Умножение, деление, остаток |
+, — | Сложение, вычитание |
> | Сдвиг влево/вправо |
& | Побитовое И |
^ | Побитовое ИЛИ НЕ |
| | Побитовое ИЛИ |
in, not in, is, is not, , >=, <>, !=, == | Сравнение, принадлежность, тождественность |
not x | Булево НЕ |
and | Булево И |
or | Булево ИЛИ |
lambda | Лямбда-выражение |
Ассоциативность операторов
В таблице выше можно увидеть, что некоторые группы включают по несколько операторов python. Это значит, что все представители одной группы имеют один уровень приоритетности.
При наличии двух или более операторов с одинаковым уровнем в дело вступает ассоциативность, определяющая порядок.
Что такое ассоциативность в Python?
Ассоциативность — это порядок, в котором Python выполняет выражения, включающие несколько операторов одного уровня приоритетности. Большая часть из них (за исключением оператора возведения в степень ** ) поддерживают ассоциативность слева направо.
Примеры
Например, у операторов умножения и деления приоритетность одинаковая. В одном выражении тот, что находится слева, будет выполняться первым.
Приоритет логических операций питон
Don't learn to code. Code to learn!
- Python - Обзор
- Основы синтаксиса Python
- Операторы в Python
- Типы данных в Python
- Условные конструкторы в Python
- Циклы в Python
- Функции в Python
- Функциональное программирование в Python
- ООП в Python
- Модули в Python
- Работа с файлами в Python
- Обработка исключительных ситуаций в Python
Что такое оператор?
Говоря простым языком, в выражении 2 + 3, числа "2" и "3" называются операндами, знак "+" оператором. В языке программирования Python существуют следующие типы операторов:
Арифметические операторы в Python:
15 + 5 в результате будет 20
20 + -3 в результате будет 17
13.4 + 7 в результате будет 20.4
Операторы сравнения в Python:
12 <> 5 в результате будет True. Похоже на оператор !=
Операторы присваивания в Python:
с = 5
а = 2
с += а равносильно: с = с + а. с будет равно 7
с = 5
а = 2
с -= а равносильно: с = с - а. с будет равно 3
с = 5
а = 2
с *= а равносильно: с = с * а. c будет равно 10
Побитовые операторы в Python:
Побитовые операторы предназначены для работы с данными в битовом (двоичном) формате. Предположим, что у нас есть два числа a = 60; и b = 13. В двоичном формате они будут иметь следующий вид:
Оператор | Описание | Примеры |
---|---|---|
& | Бинарный "И" оператор, копирует бит в результат только если бит присутствует в обоих операндах. | (a & b) даст нам 12, которое в двоичном формате выглядит так 0000 1100 |
| | Бинарный "ИЛИ" оператор копирует бит, если тот присутствует в хотя бы в одном операнде. | (a | b) даст нам 61, в двоичном формате 0011 1101 |
^ | Бинарный "Исключительное ИЛИ" оператор копирует бит только если бит присутствует в одном из операндов, но не в обоих сразу. | (a ^ b) даст нам 49, в двоичном формате 0011 0001 |
~ | Бинарный комплиментарный оператор. Является унарным (то есть ему нужен только один операнд) меняет биты на обратные, там где была единица становиться ноль и наоборот. | (~a ) даст в результате -61, в двоичном формате выглядит 1100 0011. |
Побитовый сдвиг влево. Значение левого операнда "сдвигается" влево на количество бит указанных в правом операнде. | a | |
>> | Побитовый сдвиг вправо. Значение левого операнда "сдвигается" вправо на количество бит указанных в правом операнде. | a >> 2 даст 15, в двоичном формате 0000 1111 |
Логические операторы в Python:
True and True равно True.
True and False равно False.
False and True равно False.
False and False равно False.
Операторы членства в Python:
В добавок к перечисленным операторам, в Python присутствуют, так называмые, операторы членства, предназначенные для проверки на наличие элемента в составных типах данных, таких, как строки, списки, кортежи или словари:
Оператор | Описание | Примеры |
---|---|---|
in | Возвращает истину, если элемент присутствует в последовательности, иначе возвращает ложь. | "cad" in "cadillac" вернет True. 1 in [2,3,1,6] вернет True. "hi" in вернет True. 2 in вернет False (в словарях проверяется наличие в ключах, а не в значениях). |
not in | Возвращает истину если элемента нет в последовательности. | Результаты противоположны результатам оператора in. |
Операторы тождественности в Python:
Операторы тождественности сравнивают размещение двух объектов в памяти компьютера.
Оператор | Описание | Примеры |
---|---|---|
is | Возвращает истину, если оба операнда указывают на один объект. | x is y вернет истину, если id(x) будет равно id(y). |
is not | Возврашает ложь если оба операнда указывают на один объект. | x is not y, вернет истину если id(x) не равно id(y). |
Приоритет операторов в Python
В следующей таблице описан приоритет выполнения операторов в Python от наивысшего (выполняется в первую очередь) до наинизшего.
Оператор | Описание |
---|---|
** | Возведение в степень |
~ + - | Комплиментарный оператор |
* / % // | Умножение, деление, деление по модулю, целочисленное деление. |
+ - | Сложение и вычитание. |
>> | Побитовый сдвиг вправо и побитовый сдвиг влево. |
& | Бинарный "И". |
^ | | Бинарный "Исключительное ИЛИ" и бинарный "ИЛИ" |
>= | Операторы сравнения |
<> == != | Операторы равенства |
= %= /= //= -= += *= **= | Операторы присваивания |
is is not | Тождественные операторы |
in not in | Операторы членства |
not or and | Логические операторы |