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

У каждой операции есть свои операторы. В унарных и бинарных операциях применяются базовые операторы (сложение, вычитание, отрицание, унарный плюс, унарный минус, присваивание ). Тернарный имеет три аргумента: условие if, выражение, если условие == true, и выражение, если условие == false.

Понять, что такое оператор, поможет следующий пример.

a = b + c

К переменной b прибавляется c, результат присваивается переменной a. Весь пример в целом a = b + c - это выражение. Переменные, которые в нем фигурируют, - это операнды. Производимая операция - сложение, а используемый для этого оператор - “+”.

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

Пайтон предоставляет огромное количество библиотек для решения вычислительных задач. Большой набор методов ставит Python на один уровень с Matlab и Octave. Арифметические операции применяются относительно к целым числам типа int, вещественным типа float, комплексным complex.

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

Все возможные арифметические операции приведены в таблице.

Сложение

+

Вычитание

-

Умножение

*

Деление

/

Целая часть от деления

//

Остаток от деления

%

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

**

Добавление одного числа к другому выполняет оператор additional. Вычитание осуществляется с помощью subtraction. Умножение одного числа на другое происходит с multiplication. Возведение в степень осуществляется с помощью exponenta. Для деления используется division.

Оператор modulus (%) возвращает остаток от деления левого операнда на правый. Если переменная a = 10, переменная b = 20, то b%a == 0. Что такое оператор деления с остатком, легко понять на следующем примере. Если 9/2 == 4.5, то 9//2 возвращает результат, равный 4. Деление с floor division (//) возвращает целое число от операции деления левого операнда на правый.

Выполнение любых операций осуществляется непосредственно самими числами или перемеными, которым присвоены числовые значения. Результатом может являться другая переменная либо одна из существующих.

Наряду с целыми и вещественными числами в Python существуют комплексные числа. Они состоят из действительной и мнимой части. Записываются в виде c = a+bj, где а - действительная часть,

c.real()

#a

b - мнимая.

c.imag()

#b

Арифметические операции c комплексными числами имеют те же свойства, что и с вещественными. Использование complex numbers можно представить на плоскости с прямоугольной системой координат. Точка a пересечения оси X и оси Y соответствует комплексному числу x + yi. Таким образом, на оси X располагаются вещественные числа, а на вертикальной оси Y - мнимые.

Сравнение

Операторы в Python используется для сравнения переменных. Кроме стандартных, известных из математических задач, существует проверка по значению и по типу, а также проверка неравенства.

больше

>

меньше

<

больше или равно

>=

меньше или равно

<=

равенство

==

неравенство

!= или <>

Операции сравнения осуществляются в виде a x b, где x - это оператор сравнения.

В программировании оператор “=” работает не так, как в математике. Соответствие значений каждого аргумента определяется оператором “==”, но “=” только присваивает значение. С помощью != проверяется неравенство переменных. Этот оператор можно заменить как “<>”, что не является стандартным оператором в других языках, как Си, Джава или Джаваскрипт.

Присваивание

Операторы Python присваивают значение переменной.

присваивание

=

сложение

+=

вычитание

-=

умножение

*=

деление

/=

остаток от деления

%=

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

**=

получение целого значения в результате деления

//=

Присваивание является одной из центральных конструкций в программировании. С его помощью переменным задаются некоторые значения, они могут изменяться в ходе программы.

Алгоритм работы:

  • вычисление левостороннего значения;
  • вычисление правостороннего значения;
  • присвоение одного значения другому - при конфликте типов должно быть осуществлено их приведение;
  • возврат результата операции - true или false.

Операторы присваивания и математической операции работают по такому принципу:

a x b, где x - это оператор, означает что a = a x b. Таким образом, a += b говорит о том, что значение переменной a прибавляется к значению переменной b, а их результат присваивается переменной a. То же самое происходит с другими примерами. Например, a **= b расшифровывается как a = a ** b, то есть a возводится в степень b, результат в итоге присваивается a.

Условия

Проверка условий выполняется с помощью тернарного оператора Python.

Он состоит из двух или трех частей:

  • if - проверяемое выражение;
  • elif - необязательная инструкция (аналогичная if else или elseif);
  • else - основная инструкция.
a = int(input())

if X:

    A = Y

else:

    A = Z

Выражение можно задать в одной строке.

A = Y if X else Z

Части else и elseif можно отбрасывать, выражение выглядит так:

if 1:

print("hello 1")

В Пайтоне существуют операторы break и continue. Break прерывает выполнение кода на всех уровнях. Continue прекращает текущую итерацию, продолжает выполнение со следующей точки.

Побитовые

Такие операторы Python интерпретируют операнды как последовательность нулей и единиц.

Они используют числа в двоичном представлении, возвращают результат в виде 32-битного числа.

a = 0
#00000000000000000000000000000000

a = 1

#00000000000000000000000000000001

a = 2

#00000000000000000000000000000010

a = 3

#00000000000000000000000000000011

a = 255

#00000000000000000000000011111111

Отрицательное число в двоичном формате получается методом замены бита на противоположное и прибавления 1.

314

#00000000000000000000000100111010

-314

#11111111111111111111111011000101 + 1 = 11111111111111111111111011000110

&

возвращает 1,

только если a = b

|

возвращает 1,

если a = 1 или b = 1,

или a = b

^

возвращает 1, только если a = 1 или b = 1,возвращает 0, если a = 1 и b = 1

~a

меняет биты переменной на противоположные

a << b

сдвигает все биты перменной a влево на значение b

a >> b

сдвигает все биты a вправо на значение b

a >>> b

сдвигает все биты a вправо на значение b

Отличие a >> b от a >>> b в том, что при сдвиге и отбрасывании правых значений слева добавляются копии первых битов.

9
#00000000000000000000000000001001

9 >> 2
#00000000000000000000000000000010

-9
#11111111111111111111111111110111

-9 >> 2
#11111111111111111111111111111101

Но при a >>> b левые значение будут заполнены нулями.

-9
#11111111111111111111111111110111

-9 >>> 2
#00111111111111111111111111111101

Логические

Всего существует три логических оператора.

Это:

  • and - возвращает true, если a == b == x;
  • or - возвращает true есть a == x или b == x;
  • not - возвращает false, если a == b == x.

Принадлежность

Оператор принадлежности проверяет, является ли переменная частью некоторой последовательности.

  • a in b возвращает true, если находит переменную a в последовательности b;
  • a not in b возвращает true, если не находит переменную а в последовательности b.

Тождественность

  • a is b возвращает true, если переменные справа и слева указывают на один объект;
  • a is not b возвращает true, если переменные не указывают на один объект.

Приоритеты

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

Операторы в Python и их приоритет выполнения:

  • Лямбда выражения.
  • Условные операторы Python.
  • Булевое ИЛИ.
  • Булевое И.
  • Булевое НЕ.
  • Операторы тождественности, принадлежности, операторы присваивания.
  • Битовый ИЛИ.
  • Битовый НЕ.
  • Битовый И.
  • Битовый оператор сдвига битов.
  • Сложение и вычитание.
  • Умножение и деление, включая операцию получения остатка деления и целого числа.
  • Битовое НЕ.
  • Возведение в степень.
  • Обращение к элементу массива по индексу, слайсинг, обращение к объекту класса, вызов функции с аргументами.

Первый пункт в списке - лямбда-выражение. Lambda expression используется для создания анонимных функций. Лямбда ведет себя как обычная функция, и объявляется в виде

def <lambda>(arguments):

    return expression

После лямбда-выражения следуют операции, выполняемые тернарным оператором Python.

В конце списка располагаются методы манипуляции массивом и функциями. Обращение к элементу массива по индексу выглядит так:

a[i]

В рассматриваемом случае а - это массив, i - это индекс элемента.

Слайсинг означает передачу полной копии массива или выборочную последовательность из членов списка. Диапазон желаемых значения указывается в квадратных скобках [x:y:z]. В качестве аргументов x представляется начало отсчета, y - конец, а z - шаг прохождения по элементам массива при каждой итерации. X по умолчанию обозначает начало списка, y - конец, z равняется единице. Если указать z как отрицательное число, значения списка передаются в обратном порядке с конца к началу.

Комментарии