Вы можете уменьшить 3 оператора ветвления до 2, если используете функцию math.copysign
:
import math
direction = 0 if left == right else math.copysign(1, left - right)
copysign
скопирует знак left - right
и применяет его клевый операнд (в данном случае 1).
Если left
и right
являются числами с плавающей запятой, используйте math.isclose
для проверки близости, учитывающей плавающие неточности.
direction = 0 if math.isclose(left, right) else math.copysign(1, left - right)
Если у вас есть numpy, вы можете обработать специальный случай left == right
с самой функцией, используя np.sign
:
import numpy as np
direction = np.sign(left - right)