输入三角形三边长,计算三角形面积,其中使用自定义异常,处理边长的输入异常。
时间: 2023-10-08 21:06:26 浏览: 103
好的,以下是一个示例代码:
```python
class InvalidTriangleException(Exception):
pass
class Triangle:
def __init__(self, a, b, c):
if a <= 0 or b <= 0 or c <= 0:
raise InvalidTriangleException("边长必须为正数")
if a + b <= c or a + c <= b or b + c <= a:
raise InvalidTriangleException("无法构成三角形")
self.a = a
self.b = b
self.c = 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
try:
a = float(input("输入三角形第一条边长:"))
b = float(input("输入三角形第二条边长:"))
c = float(input("输入三角形第三条边长:"))
triangle = Triangle(a, b, c)
print("三角形面积为:", triangle.area())
except ValueError:
print("边长必须为数字")
except InvalidTriangleException as e:
print(e)
```
在上面的代码中,我们定义了一个 `InvalidTriangleException` 异常类,用于处理输入的边长无法构成三角形或者边长不为正数的情况。然后定义了一个 `Triangle` 类,该类有一个 `area` 方法用于计算三角形面积。在输入边长时,我们使用了 `float` 函数将输入的字符串转换为浮点数,如果无法转换则会触发 `ValueError` 异常。最后,在 `try` 块中创建了 `Triangle` 对象并计算其面积,如果出现异常则会被对应的 `except` 块捕获并处理。
阅读全文