编写一个Python程序,按用户输入的三角形3条变判断能否构成直角三角形,若能构成则计算三角形的面积和周长,否则引发异常
时间: 2024-05-07 07:21:10 浏览: 9
以下是一个Python程序,可以根据用户输入的三边长来判断能否构成直角三角形,并计算其面积和周长。如果无法构成直角三角形,则会引发一个自定义的异常。
```python
class NotRightTriangleException(Exception):
pass
def calculate_triangle(a, b, c):
if a**2 + b**2 == c**2:
# 直角三角形
perimeter = a + b + c
p = perimeter / 2
area = (a * b) / 2
return area, perimeter
else:
# 非直角三角形
raise NotRightTriangleException("无法构成直角三角形")
try:
a = float(input("请输入三角形的第一条边长:"))
b = float(input("请输入三角形的第二条边长:"))
c = float(input("请输入三角形的第三条边长:"))
area, perimeter = calculate_triangle(a, b, c)
print("能构成直角三角形,面积为:%f,周长为:%f" % (area, perimeter))
except NotRightTriangleException as e:
print("无法构成直角三角形:%s" % e)
except ValueError:
print("输入的边长必须是数字")
```
在这个程序中,我们首先定义了一个自定义的异常类 `NotRightTriangleException`,用于在无法构成直角三角形时引发异常。然后我们定义了一个名为 `calculate_triangle` 的函数,用于计算三角形的面积和周长。如果三条边长可以构成直角三角形,则返回面积和周长;否则引发 `NotRightTriangleException` 异常。
在程序的主体部分,我们首先读取用户输入的三条边长,然后调用 `calculate_triangle` 函数来计算面积和周长。如果计算成功,则输出结果。如果边长输入有误,则会引发 `ValueError` 异常;如果无法构成直角三角形,则会引发 `NotRightTriangleException` 异常。在这两种情况下,我们都会输出相应的错误信息。