Операторы
Арифметические операторы
Оператор сложения (
+)4 + 5 # 9Оператор вычетания (
-)4 - 5 # -1Оператор умножения (
*)4 * 5 # 20Оператор деления (
/)Интересным фактом с оператором деления является то, что возвращаемое значение меняет тип на
float, даже если операндами были значения типаint20 / 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 оператора принадлежности:
innot 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
Может доведется и я покажу как можно работать с
битовыми масками