设计并测试一个矩形类,属性为矩形的左上角与右下角的坐标举,矩形水平放置
时间: 2024-05-10 18:14:41 浏览: 148
好的,下面是一个矩形类的示例代码:
```python
class Rectangle:
def __init__(self, x1, y1, x2, y2):
self.x1 = x1
self.y1 = y1
self.x2 = x2
self.y2 = y2
def width(self):
return abs(self.x2 - self.x1)
def height(self):
return abs(self.y2 - self.y1)
def area(self):
return self.width() * self.height()
def perimeter(self):
return 2 * (self.width() + self.height())
def contains(self, x, y):
return self.x1 <= x <= self.x2 and self.y1 <= y <= self.y2
def __str__(self):
return f"({self.x1}, {self.y1}), ({self.x2}, {self.y2})"
```
这个矩形类的属性包括矩形的左上角和右下角的坐标,其中 x1, y1 表示左上角的坐标,x2, y2 表示右下角的坐标。矩形默认是水平放置的。
这个类还实现了一些方法:
- `width()`:返回矩形的宽度;
- `height()`:返回矩形的高度;
- `area()`:返回矩形的面积;
- `perimeter()`:返回矩形的周长;
- `contains(x, y)`:判断一个点 (x, y) 是否在矩形内部;
- `__str__()`:返回一个字符串,表示矩形的左上角和右下角的坐标。
下面是一个测试代码,可以用来测试这个矩形类是否正确:
```python
r = Rectangle(1, 2, 5, 4)
print(r.width()) # 4
print(r.height()) # 2
print(r.area()) # 8
print(r.perimeter()) # 12
print(r.contains(2, 3)) # True
print(r.contains(6, 5)) # False
print(str(r)) # (1, 2), (5, 4)
```
这个测试代码会创建一个矩形 r,左上角坐标为 (1, 2),右下角坐标为 (5, 4)。然后测试各个方法的正确性。
阅读全文