Операторы
Арифметические операторы
Оператор сложения (
+
)4 + 5 # 9Оператор вычетания (
-
)4 - 5 # -1Оператор умножения (
*
)4 * 5 # 20Оператор деления (
/
)Интересным фактом с оператором деления является то, что возвращаемое значение меняет тип на
float
, даже если операндами были значения типаint
20 / 4 # 5.0Оператор получения остатка от деления (
%
)21 % 4 # 122 % 4 # 2Оператор получения целого от деления (
//
)21 // 4 # 526 // 4 # 6Оператор возведения в степень (
//
)4 ** 5 # 1024
Операторы присваивания
=
var = 5 # присвоили перемеменной 'var' значение 5Присвоение с сложением
+=
var = 5 # 5var += 1 # 6var = var + 1 # 7Присвоение с вычитанием
+=
var = 5 # 5var -= 1 # 4var = var - 1 # 3Присвоение с умножением
*=
var = 5 # 5var *= 2 # 10var = var * 2 # 20Присвоение с делением
/=
var = 6 # 5var /= 2 # 3.0var = var / 2 # 1.0Присвоение с остатком от деления
/=
var = 5 # 5var %= 2 # 1var = var % 2 # 1
Надеюсь что на этом месте суть ясна.. И дальше не стоит продолжать с операторами присваивания
Операторы сравнения
Операторы сравнения возвращают значение типа bool
Логические операторы
C логическими операторами немного сложнее чем кажется на первый взгляд, и вы скорее всего об этом не знали, логические операторы or
и end
в Python
не возвращают bool
они возвращают значение одного из операндов. Это важно запомнить!
Логическое ИЛИ (
or
)Возвращает значение того операнда который равен
True
(либо неявно приводится к нему).print(0 or 1) # выведет 1 в консольЛогическое И (
and
) Возвращает значение того операнда который равенFalse
(либо неявно приводится к нему).print(0 and 1) # выведет 0 в консольЛибо если операнды равны
True
- вернется второй операндprint(1 and 2 and 3 and 4) # что выведет в консоль?Логическое отрицание (
not
) Полученое значение приводит кbool
если требуется и возвращает отрицание.not True # Falsenot 0 # Truenot [] # Truenot False # Truenot [1] # # False
Идентификационные операторы
Эти операторы не проверяют эквивалентность(равность операндов), они проверяют является ли объект в левом операнде тем же объектом в правом.
Что значит подсвеченная строчка в примере выше? А это значит что объявление строк через литералы в Python
кешируются. Давайте напишем по другому, не будем использовать строчные литералы, а сгенерируем строчки программно.
Есть 2 идентификационных оператора в Python
:
is
not is
Операторы принадлежности
С помощью оператора in
и его "антогониста" not in
мы можем проверить принадлежность какого-то значения к последовательности(list
, set
...)
Строка в Python
тоже последовательность
(sequence
), последовательность байт
либо символов
, а значит мы можем так же искать подстроки в строках:
Итого у нас 2 оператора принадлежности:
in
not in
Битовые операторы
!!!Это тему я расскою чуть позже, а пока мы перечислим их и посмотрим на результаты их применения
Побитовый AND (
&
):0,1,0,0,10,1,0,0,0--------- &0,1,0,0,0 = 8Побитовый OR (
|
):0,1,0,0,10,1,0,0,0--------- |0,1,0,0,1 = 9Побитовый XOR (
^
):0,1,0,0,10,1,0,0,0--------- ^0,0,0,0,1 = 1Побитовый NOT (
~
)0,1,0,0,1--------- ~1,0,1,1,0 = 22Здвиг влево (
<<
)0,0,0,0,1--------- << 30,1,0,0,0 = 8Здвиг вправо (
<<
)0,0,0,0,1--------- >> 30,0,0,0,0 = 0
Может доведется и я покажу как можно работать с
битовыми масками