Python, вычитающий числа с плавающей точкой

#python #class #floating-point #subtraction

#python #класс #число с плавающей запятой #вычитание

Вопрос:

У меня есть следующий код, встроенный в класс.Всякий раз, когда я запускаю distToPoint, он выдает ошибку «неподдерживаемый тип (ы) операнда для -: ‘NoneType’ и ‘float» Я не знаю, почему он возвращается с NoneType и как мне заставить вычитание работать?

Предполагается, что self и p должны быть парами.

 def __init__(self, x, y):
    self.x = float(x)
    self.y = float(y)
def distToPoint(self,p):
    self.ax = self.x - p.x
    self.ay = self.y - p.y
    self.ac = math.sqrt(pow(self.ax,2) pow(self.ay,2)) 
  

Комментарии:

1. Ваш код (как указано) не выдает эту ошибку. Пожалуйста, отредактируйте свой код, чтобы привести простейший пример, который приводит к ошибке.

Ответ №1:

Для сравнения,

 import math

class Point(object):
    def __init__(self, x, y):
        self.x = x   0.
        self.y = y   0.

    def distToPoint(self, p):
        dx = self.x - p.x
        dy = self.y - p.y
        return math.sqrt(dx*dx   dy*dy)

a = Point(0, 0)
b = Point(3, 4)

print a.distToPoint(b)
  

ВОЗВРАТ

 5.0
  

Ответ №2:

Вы должны проверить, какое значение p вы отправляете функции, чтобы у нее были x и y , которые являются числами с плавающей точкой.

Старый пост (если подумать, я не думаю, что вы пытались использовать distToPoint таким образом):

distToPoint не возвращает значение, вероятно, в этом проблема.