编写程序,按用户输人的三角形了条边判断能否构成直角三角形,若能构成则 角形的面积和周长,否则引发异常。
时间: 2024-03-26 12:42:01 浏览: 20
好的,以下是 Python 代码示例,可以实现你的需求:
```python
import math
class TriangleError(Exception):
pass
def is_right_triangle(a, b, c):
if a**2 + b**2 == c**2 or a**2 + c**2 == b**2 or b**2 + c**2 == a**2:
return True
else:
return False
def calculate_triangle(a, b, c):
if a+b <= c or a+c <= b or b+c <= a:
raise TriangleError("无法构成三角形")
elif is_right_triangle(a, b, c):
perimeter = a + b + c
s = (a + b + c) / 2
area = math.sqrt(s * (s-a) * (s-b) * (s-c))
return (perimeter, area)
else:
raise TriangleError("不是直角三角形")
try:
a = float(input("请输入三角形的第一条边长:"))
b = float(input("请输入三角形的第二条边长:"))
c = float(input("请输入三角形的第三条边长:"))
perimeter, area = calculate_triangle(a, b, c)
print("该三角形是直角三角形,周长为%.2f,面积为%.2f" % (perimeter, area))
except ValueError:
print("输入的边长必须是数字")
except TriangleError as e:
print("发生错误:%s" % e)
```
运行程序后,会提示你输入三角形的三条边长,如果输入的边长能构成直角三角形,程序会计算并输出该三角形的周长和面积;如果输入的边长不能构成直角三角形,则会引发自定义的 TriangleError 异常,并输出异常信息。如果输入的边长不是数字,则会引发 ValueError 异常,并输出异常信息。