返回语句错误

时间:2018-04-07 05:10:35

标签: python return

运行整个脚本时,我没有得到任何输出。

class Vectors():

    def __init__(self, coordinates):
        try:
            if not coordinates:
                raise ValueError
            self.coordinates = tuple(coordinates)
            self.dimension = len(coordinates)

        except ValueError:
            print('The vector cannot be non-empty.')
        except TypeError:
            print('The object type is not iterable.')

    def magnitude(self):

        lst = [x**2 for x in self.coordinates]
        return math.sqrt(sum(lst))


    def dot_product(self, vector):
        lst = [round(x*y, 3) for x,y in zip(self.coordinates, vector.coordinates)]
        return sum(lst)

vector_v1 = Vectors([7.887, 4.138]) 
vector_w1 = Vectors([-8.802, 6.776])

vector_v1.dot_product(vector_w1)

vector_v1.magnitude()

1 个答案:

答案 0 :(得分:0)

我认为您希望看到点积和幅度函数的结果。

如果是这种情况,你不会得到这些函数的输出,因为它们只是某些东西返回给该函数的调用者,并且该函数的调用者不对它执行某些操作(将其打印到控制台)。

如果你想让调用者在控制台上显示函数调用的结果(返回值),那么你应该得到返回的值并打印出来。

vector_v1 = Vectors([7.887, 4.138])
vector_w1 = Vectors([-8.802, 6.776])
v1_w1_dot = vector_v1.dot_product(vector_w1)
print(v1_w1_dot)
v1_magnitude = vector_v1.magnitude()
print(v1_magnitude)

由于您似乎没有在代码中进一步使用计算的点积或手势,您也可以将其写得更短:

vector_v1 = Vectors([7.887, 4.138])
vector_w1 = Vectors([-8.802, 6.776])
print(vector_v1.dot_product(vector_w1))
print(vector_v1.magnitude())