Рубрики
Без рубрики

Операторы Python

Операторы Python используются для выполнения определенной работы по переменным и значениям. Арифметическое, логическое, побитовое, сравнение, назначение, операторы идентичности.

Автор оригинала: Pankaj Kumar.

Операторы используются для выполнения определенной работы по переменным и значениям. У Python есть много операторов, которые являются либо Ключевые слова или специальные символы Отказ Значения или переменные, на которых работает эти операторы, называются операнды Отказ

Типы операторов Python

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

  1. Арифметические операторы
  2. Логические операторы
  3. Операторы сравнения
  4. Побитовые операторы
  5. Операторы назначения
  6. Операторы членства
  7. Операторы идентичности

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

Арифметические операторы обычно работают на цифрах. Существуют операторы для добавления, вычитания, умножения, разделения, модуля и экспоненциальные операции. Некоторые из этих операторов тоже работают на строки. Все арифметические операторы – это специальные символы.

  • +: оператор дополнения
  • -: Оператор вычитания
  • *: оператор умножения
  • /: оператор дивизии
  • **: экспоненциальный оператор
  • //: Оператор дивизии пола

Давайте посмотрим на пример арифметических операторов в Python.

x = 15
y = 7

sum = x + y
print("addition =", sum)

subtraction = x - y
print("subtraction =", subtraction)

multiplication = x * y
print("multiplication =", multiplication)

division = x / y
print("division =", division)

modulus = x % y
print("modulus =", modulus)

exponent = x ** 2
print("exponent =", exponent)

floor_division = x // y
print("division =", floor_division)  # 2

Выход:

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

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

print("addition of strings =", ("Python" + " " + "Operators"))
print("multiplication of strings =", ("Python" * 2))

Выход:

addition of strings = Python Operators
multiplication of strings = PythonPython

2. Сравнительные операторы

Операторы сравнения используются для сравнения двух значений. Результатом всегда логическое значение – Правда или Ложь Отказ

Список операторов сравнения в Python является:

  • ==: возвращает true, если оба значения равны.
  • ! =: возвращает true, если обе операнды не равны.
  • >: возвращает true, если левый операнд больше, чем правый операнд.
  • <: возвращает true, если левый операнд меньше, чем правый операнд.
  • > =: возвращает true, если левое значение больше или равно правильному значению.
  • <=: возвращает true, если левое значение меньше или равно правильному значению.

Давайте посмотрим на пример, чтобы использовать операторы сравнения в Python.

x = 10
y = 20

print(f'equals = {x == y}')
print(f'not equals = {x != y}')
print(f'greater than = {x > y}')
print(f'less than = {x < y}')
print(f'greater than or equal to = {x >= y}')
print(f'less than or equal to = {x <= y}')

Выход:

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

Эти операторы работают на строках тоже. Строка считается больше, чем другая строка, если она приходит после этого лексикографически. Например, «Привет» больше «Hello» в лексикографическом сравнении.

3. Битовые операторы

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

В Python есть 6 побитовых операторов.

  • &: Побитовые и оператор
  • |.: Побитовой или оператор
  • ^: Оператор Битона Хор
  • ~: Оператор дополнения двоичных
  • <<: Двоичный Оператор Left Shift
  • >>: Двоичный правый оператор смены
x = 10  # 1010
y = 4  #  0100

print(f'Binary AND = {x & y}')
print(f'Binary OR = {x | y}')
print(f'Binary XOR = {x ^ y}')
print(f'Binary Ones Complement = {~x}')
print(f'Binary Left Shift by 2 = {x << 2}')
print(f'Binary Right Shift by 3 = {x >> 3}')

Выход:

Binary AND = 0
Binary OR = 14
Binary XOR = 14
Binary Ones Complement = -11
Binary Left Shift by 2 = 40
Binary Right Shift by 3 = 1

4. Python логические операторы

В Python есть три логических оператора. Они работают с логическими операндами и возвращает логическое значение. Они сделаны из зарезервированных ключевых слов в Python.

  • и: логично и оператор
  • или: логический или оператор
  • Не: логично не оператор
b1 = True
b2 = False

print(f'{b1} and {b2} = {b1 and b2}')
print(f'{b1} and {b2} = {b1 or b2}')
print(f'not {b1} = {not b1}')

Выход:

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

5. Операторы назначения

Оператор присваивания (=) используется для назначения левого операнда в нужное операнду.

Есть некоторые Комплексные операторы назначения выполнить некоторую арифметическую операцию между двумя операндами, а затем назначить значение левой операнду.

  • =: простое оператор назначения
  • + =: добавляет два операнда, а затем назначают значение правильному оперу
  • – =: вычитает правильный операнд слева, а затем назначить значение левой операнду
  • * =: умножает как операнды, а затем назначают налево
  • /=: делит покинул операнду из правого операнда, а затем назначить значение левой операнду
  • % =: модуль левых и правых операндов, а затем назначен на левый операнд
  • ** =: экспоненциал слева направо операнда, а затем назначение левой операнду
  • //=: полное разделение левых и правых операндов, а затем значение присвоено левому операнду
a = 10  # simple assignment operator
b = 5

a += b  # same as a=a+b
print(a)  # 15

a -= b  # same as a=a-b
print(a)  # 10

a *= b  # same as a = a*b
print(a)  # 50

a /= b  # same as a = a/b
print(a)  # 10.0

a %= b  # same as a = a%b
print(a)  # 0.0

a = 2
b = 4

a **= b  # same as a = a**b
print(a)  # 16

a //= b  # same as a = a // b (floor division)
print(a) # 4

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

Операторы членства используются для проверки наличия значения в последовательности. В Python есть два оператора членства.

  1. в
  2. не в

Эти операторы обычно используются с состоянием If-Enf.

x = 3

my_tuple = (1, 2, 3, 4)
my_list = [1, 2, 3, 4]
my_str = "Hello"

print(f'{x} is present in {my_tuple} = {x in my_tuple}')

if x in my_list:
    print(f'{x} is present in {my_list}')

if 'a' not in my_str:
    print(f'a is not present in {my_str}')
Операторы членства на Python

7. Операторы идентичности

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

  1. это: возвращает true, если оба переменных указывают на то же местоположение памяти
  2. нет: возвращает true, если оба переменных указывают на разное местоположение памяти
s1 = [1, 2]
s2 = [1, 2]
s3 = s1

print(s1 is s2)  # False
print(s1 is s3)  # True

print(s1 is not s2)  # True
print(s1 is not s3)  # False

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

Иногда выражение содержит несколько операторов. В этом случае оператор-приоритет используется для определения порядка выполнения.

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

Ниже таблицы перечислены перед операторами приоритет в порядке убывания.

** (экспонент)
~ (Те, которые дополняют)
*, ////,% (умножение, разделить, пола дивизия, операторы модуля)
+, – (добавление, вычитание)
<<, >> (правые и левые операторы смены)
& (Побитовые и)
|, ^ (Побитовые или, хор)
==,! =,>, <,> =, <= (Операторы сравнения)
=, + =, – =, * =, / =, // =,% = (операторы назначения)
это не (операторы идентичности)
в, не в (членов операторов)
нет, а или (логические операторы)

Перегрузка оператора Python

Python поддерживает перегрузку оператора. Существуют определенные методы для перегрузки оператора для объекта.

Посмотрим, что произойдет, когда оператор не поддерживается для класса.

class Data:
    id = 0

    def __init__(self, i):
        self.id = i


d1 = Data(10)
d2 = Data(20)

d3 = d1 + d2
print(d3.id)

Выход:

Traceback (most recent call last):
  File "/Users/pankaj/Documents/PycharmProjects/PythonTutorialPro/hello-world/operators_examples.py", line 9, in 
    d3 = d1 + d2
TypeError: unsupported operand type(s) for +: 'Data' and 'Data'

Если мы должны поддерживать + оператор для класса данных, мы должны определить метод __add __ () для него. Давайте посмотрим обновленный код и вывод.

class Data:
    id = 0

    def __init__(self, i):
        self.id = i

    def __add__(self, other):
        return Data(self.id + other.id)


d1 = Data(10)
d2 = Data(20)

d3 = d1 + d2
print(d3.id)

Выход: 30.

Ниже таблица предоставляют методы переопределения для перегрузки оператора в Python.

__add __ (Self, Другое) + Добавление
__sub __ (Self, Другое) Вычитание
__mul __ (Self, Другое) * Умножение
__truediv __ (Self, Другое) / Истинное разделение
__flooordiv __ (Self, Другое) // Полное разделение
__mod __ (Self, Другое) % Остаток
__Pow __ (Self, Другое) ** Мощность
__ и __ (я, другой) & Побил и
__ __ (Я, Другое) | Побито или
__кс __ (я, другой) ^ Побитовые хорна
__GT __ (Я, Другое) > Больше чем
__ge __ (Self, Другое) > = Больше или равно
__LT __ (Я, Другое) < Меньше, чем
__le __ (Self, Другое) <= Меньше или равно
__eq __ (Self, Другое) ==. Равно
__ne __ (Self, Другое) знак равно Не равно

Модуль оператора Python

Модуль оператора Python обеспечивает набор функций, соответствующих операторам в Python. Эти имена функций такие же, как специальные методы, без двойных подчеркиваний.

Давайте посмотрим на пример пользовательского класса, который поддерживает операторы – +,> и *. Мы будем использовать функции модуля оператора для вызова этих методов на объектах класса.

import operator


class Data:
    id = 0

    def __init__(self, i):
        self.id = i

    def __add__(self, other):
        return Data(self.id + other.id)

    def __gt__(self, other):
        return self.id > other.id

    def __mul__(self, other):
        return Data(self.id * other.id)


d1 = Data(10)
d2 = Data(20)

d3 = operator.add(d1, d2)
print(d3.id)

d3 = operator.mul(d1, d2)
print(d3.id)

flag = operator.gt(d1, d2)
print(flag)

Заключение

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

Рекомендации: