py编写程序,输入三角形三条边判断能否构成直角三角形,若能构成则计算三角形的面积和周长,否则引发异常。
时间: 2023-12-29 10:09:53 浏览: 124
好的,下面是实现该功能的 Python 代码:
import math
class NotRightTriangleError(Exception):
pass
def calculate_triangle(a, b, c):
if a + b <= c or a + c <= b or b + c <= a:
raise NotRightTriangleError("无法构成三角形")
if a**2 + b**2 == c**2 or a**2 + c**2 == b**2 or b**2 + c**2 == a**2:
print("可以构成直角三角形")
p = (a + b + c) / 2
area = math.sqrt(p * (p - a) * (p - b) * (p - c))
perimeter = a + b + c
print(f"三角形的面积为 {area}, 周长为 {perimeter}")
else:
raise NotRightTriangleError("无法构成直角三角形")
try:
a = float(input("请输入三角形第一条边的长度:"))
b = float(input("请输入三角形第二条边的长度:"))
c = float(input("请输入三角形第三条边的长度:"))
calculate_triangle(a, b, c)
except ValueError:
print("输入的数值有误,请重新运行程序")
except NotRightTriangleError as e:
print(e)
代码中,定义了一个名为 NotRightTriangleError
的自定义异常,用于在输入的三角形无法构成直角三角形时引发异常。calculate_triangle
函数接收三角形三条边的长度,首先判断是否能构成三角形,若不能则引发异常,否则判断是否能构成直角三角形,若能则计算三角形的面积和周长,否则引发异常。最后在主程序中,使用 try...except
语句捕获输入错误和自定义异常,并给出相应的提示信息。
相关推荐














