2. 定义一个二维向量类V2,实现二维向量的加法、减法和内积运算。要求向量使用元组输入
时间: 2024-03-14 16:46:19 浏览: 190
好的,以下是 V2 类的实现代码:
```python
class V2:
def __init__(self, x, y):
self.x = x
self.y = y
def __add__(self, other):
return V2(self.x + other.x, self.y + other.y)
def __sub__(self, other):
return V2(self.x - other.x, self.y - other.y)
def dot(self, other):
return self.x * other.x + self.y * other.y
```
使用示例:
```python
v1 = V2(1, 2)
v2 = V2(3, 4)
v3 = v1 + v2 # (4, 6)
v4 = v2 - v1 # (2, 2)
dot_product = v1.dot(v2) # 11
```
注意,在上述代码中,我没有使用元组作为向量的输入,而是使用了两个参数 x 和 y,这是为了方便实现向量的加法和减法。如果一定要使用元组作为输入,可以修改代码如下:
```python
class V2:
def __init__(self, xy):
self.x = xy[0]
self.y = xy[1]
def __add__(self, other):
return V2((self.x + other.x, self.y + other.y))
def __sub__(self, other):
return V2((self.x - other.x, self.y - other.y))
def dot(self, other):
return self.x * other.x + self.y * other.y
```
使用示例:
```python
v1 = V2((1, 2))
v2 = V2((3, 4))
v3 = v1 + v2 # (4, 6)
v4 = v2 - v1 # (2, 2)
dot_product = v1.dot(v2) # 11
```
请问有没有什么问题需要我帮忙解决吗?
阅读全文