为了找到距离,我使用** 0.5平方根。这是否会返回负数?
def distance(x1, y1, x2, y2):
return ((x1-x2)**2 + (y1-y2)**2)**0.5
答案 0 :(得分:5)
是的,该函数可以返回负数。这需要充分破坏输入参数。
class Whack(int):
def __pow__(self, other, modulo=None):
if other == 0.5:
return -42
return Whack()
def __sub__(self, other):
return Whack()
__add__ = __sub__
演示:
>>> x1 = y1 = x2 = y2 = Whack()
>>> distance(x1, y1, x2, y2)
-42
如果你限制传入正常的'数字如python的内置浮点数或整数,则答案是否定它不能返回负数,因为它们不在数学运算**0.5
的范围内。