编写一个Triangle类代表三角形,在三角形中,任意俩边之和总大于第三边,创建一个IllegalTriangleException异常类,在Triangle类的构造方法中,如果创建的三角形的边违反了这一规则,则抛出一个Illegal Triangle Exception类对象
时间: 2023-12-31 12:05:20 浏览: 123
设计一个Triangle类
好的,以下是修改后的Triangle类的代码实现:
```python
class IllegalTriangleException(Exception):
pass
class Triangle:
def __init__(self, a, b, c):
if a + b <= c or a + c <= b or b + c <= a:
raise IllegalTriangleException("创建的三角形不符合规则")
self.a = a
self.b = b
self.c = c
def perimeter(self):
return self.a + self.b + self.c
def area(self):
s = (self.a + self.b + self.c) / 2
return (s * (s - self.a) * (s - self.b) * (s - self.c)) ** 0.5
```
这个Triangle类与之前的版本类似,不同之处在于增加了一个IllegalTriangleException异常类。在Triangle类的构造方法中,我们首先判断创建的三角形是否符合规则,如果不符合则抛出一个IllegalTriangleException异常。
例如,如果我们尝试创建一个边长分别为 1、2、3 的三角形,由于它不符合规则,会抛出一个IllegalTriangleException异常:
```python
t = Triangle(1, 2, 3) # 抛出IllegalTriangleException异常
```
而如果我们创建一个边长分别为 3、4、5 的三角形,则可以正常创建:
```python
t = Triangle(3, 4, 5)
print(t.perimeter()) # 输出 12
print(t.area()) # 输出 6.0
```
阅读全文