运行整个脚本时,我没有得到任何输出。
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()
答案 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())