编写程序,按用户输入的三角形3条边判断能否构成直角三角形,若能构成则计算三角形周长和面积,否则引发异常,
时间: 2024-03-15 20:45:24 浏览: 64
c++用函数写输入三边——判断三角形形状并计算面积周长
5星 · 资源好评率100%
好的,以下是 Python 代码实现:
```python
import math
class Triangle:
def __init__(self, a, b, c):
self.a = a
self.b = b
self.c = c
def is_right_triangle(self):
sides = sorted([self.a, self.b, self.c])
return math.isclose(sides[0] ** 2 + sides[1] ** 2, sides[2] ** 2)
def perimeter(self):
return self.a + self.b + self.c
def area(self):
p = self.perimeter() / 2
return math.sqrt(p * (p - self.a) * (p - self.b) * (p - self.c))
try:
a = float(input("请输入三角形第一条边的长度:"))
b = float(input("请输入三角形第二条边的长度:"))
c = float(input("请输入三角形第三条边的长度:"))
t = Triangle(a, b, c)
if t.is_right_triangle():
print("能构成直角三角形")
print("周长为:", t.perimeter())
print("面积为:", t.area())
else:
raise Exception("不能构成直角三角形")
except ValueError:
print("输入的边长必须为数字")
except Exception as e:
print(e)
```
解释一下代码的实现:
- 定义了一个 `Triangle` 类,用于表示一个三角形,其中 `__init__` 方法用于初始化三角形的三条边长,`is_right_triangle` 方法用于判断是否为直角三角形,`perimeter` 方法用于计算周长,`area` 方法用于计算面积。
- 在 `try` 块中,首先使用 `float` 函数将用户输入的三条边长转换为浮点数,然后创建一个 `Triangle` 对象 `t`,并判断是否为直角三角形。如果是直角三角形,则输出周长和面积;否则引发异常。
- 在 `except` 块中,处理可能出现的异常,如输入的边长不是数字或不能构成直角三角形。
阅读全文