Арифметические и побитовые операторы для манипулирования числовыми значениями также поддерживаются модулем operator
и являются самыми многочисленными.
operator.abs(obj)
operator.__abs__(obj)
:Функция возвращает абсолютное значение obj
.
operator.add(a, b)
operator.__add__(a, b)
:Функция возвращает a + b
, для чисел a
и b
.
operator.and_(a, b)
operator.__and__(a, b)
:Функция возвращает побитовое &
для a
и b
.
operator.floordiv(a, b)
operator.__floordiv__(a, b)
:Функция возвращает a // b
.
operator.index(a)
operator.__index__(a)
:Функция возвращает a
преобразованное в целое число. Эквивалентно a.__index__()
.
operator.inv(obj)
operator.invert(obj)
operator.__inv__(obj)
operator.__invert__(obj)
:Функция возвращает побитовую инверсию числа obj
. Функция эквивалентна операции ~obj
.
Оператор побитовой инверсии (
~
) вbool
устарел. Его использование выдаст ошибку в Python 3.14. Вместо него используйтеnot
для отрицания логических значений. В том редком случае, когда действительно нужна побитовая инверсия базового значенияint
, преобразуйте вint
явно:~int(x)
.
operator.lshift(a, b)
operator.__lshift__(a, b)
:Функция возвращает a
, которая сдвигается влево b
.
operator.mod(a, b)
operator.__mod__(a, b)
:Функция возвращает a % b
.
operator.mul(a, b)
operator.__mul__(a, b)
:Функция возвращает a * b
, для чисел a
и b
.
operator.matmul(a, b)
operator.__matmul__(a, b)
:Функция возвращает a @ b
.
operator.neg(obj)
operator.__neg__(obj)
:Функция возвращает отрицание (-obj)
.
operator.or_(a, b)
operator.__or__(a, b)
:Функция возвращает побитовое |
для a
и b
.
operator.pos(obj)
operator.__pos__(obj)
:Функция возвращает положительный результат (+obj)
.
operator.pow(a, b)
operator.__pow__(a, b)
:Функция возвращает a ** b
для чисел a
и b
.
operator.rshift(a, b)
operator.__rshift__(a, b)
:Функция возвращает a
сдвинутое вправо на b
.
operator.sub(a, b)
operator.__sub__(a, b)
:Функция возвращает a - b
.
operator.truediv(a, b)
operator.__truediv__(a, b)
:Функция возвращает a / b
где 2/3
будет .66
, а не 0. Это также называется "истинным" делением.
operator.xor(a, b)
operator.__xor__(a, b)
:Функция возвращает побитовое исключение ^
для a
and b
.
operator
.import operator action = { "+": operator.add, "-": operator.sub, "/": operator.truediv, "*": operator.mul, "**": operator.pow } >>> action['-'](50, 25) # 25 >>> action['+'](50, 25) # 75 >>> action['/'](50, 25) # 2.0 >>> action['*'](50, 25) # 1250
operator_math.py from operator import * a = -1 b = 5.0 c = 2 d = 6 print('\nPositive/Negative:') print('abs(a):', abs(a)) print('neg(a):', neg(a)) print('neg(b):', neg(b)) print('pos(a):', pos(a)) print('pos(b):', pos(b)) print('\nArithmetic:') print('add(a, b) :', add(a, b)) print('floordiv(a, b):', floordiv(a, b)) print('floordiv(d, c):', floordiv(d, c)) print('mod(a, b) :', mod(a, b)) print('mul(a, b) :', mul(a, b)) print('pow(c, d) :', pow(c, d)) print('sub(b, a) :', sub(b, a)) print('truediv(a, b) :', truediv(a, b)) print('truediv(d, c) :', truediv(d, c)) print('\nBitwise:') print('and_(c, d) :', and_(c, d)) print('invert(c) :', invert(c)) print('lshift(c, d):', lshift(c, d)) print('or_(c, d) :', or_(c, d)) print('rshift(d, c):', rshift(d, c)) print('xor(c, d) :', xor(c, d))
Результаты:
Positive/Negative: abs(a): 1 neg(a): 1 neg(b): -5.0 pos(a): -1 pos(b): 5.0 Arithmetic: add(a, b) : 4.0 floordiv(a, b): -1.0 floordiv(d, c): 3 mod(a, b) : 4.0 mul(a, b) : -5.0 pow(c, d) : 64 sub(b, a) : 6.0 truediv(a, b) : -0.2 truediv(d, c) : 3.0 Bitwise: and_(c, d) : 2 invert(c) : -3 lshift(c, d): 128 or_(c, d) : 6 rshift(d, c): 1 xor(c, d) : 4