Ваша проблема в том, что возведение в степень в Python выполняется с использованием a ** b
, а не a ^ b
(^
- битовое XOR), что приводит к тому, что final является отрицательным значением, что вызывает ошибку домена.
Ваш фиксированный код:
def distance(x1, y1, x2, y2):
return ((x2 - x1) ** 2 + (y2 - y1) ** 2) ** .5 # to the .5th power equals sqrt