编写python程序,按用户输入的三角形3条边判断能否构成直角三角形,若能·构成则计算三角形的面积和周长,否则引发·异常、
时间: 2023-12-02 18:04:51 浏览: 150
python 判断输入的边长能否构成三角形 示例
5星 · 资源好评率100%
好的,以下是一个可以实现这个功能的 Python 程序:
```python
import math
def is_right_triangle(a, b, c):
if a <= 0 or b <= 0 or c <= 0:
raise ValueError("边长必须为正数!")
if a + b <= c or a + c <= b or b + c <= a:
return False
return a*a + b*b == c*c or a*a + c*c == b*b or b*b + c*c == a*a
def triangle_area(a, b, c):
p = (a + b + c) / 2
return math.sqrt(p * (p - a) * (p - b) * (p - c))
def triangle_perimeter(a, b, c):
return a + b + c
try:
a = float(input("请输入三角形第一条边长:"))
b = float(input("请输入三角形第二条边长:"))
c = float(input("请输入三角形第三条边长:"))
if is_right_triangle(a, b, c):
print("可以构成直角三角形")
print("三角形面积为:", triangle_area(a, b, c))
print("三角形周长为:", triangle_perimeter(a, b, c))
else:
print("无法构成直角三角形")
except ValueError as e:
print("输入错误:", e)
```
程序首先定义了一个 `is_right_triangle(a, b, c)` 函数,用于判断三个边长是否能构成直角三角形。如果不能,则会抛出 `ValueError` 异常。如果能,则返回 `True`。
接下来,`triangle_area(a, b, c)` 和 `triangle_perimeter(a, b, c)` 两个函数分别用于计算三角形的面积和周长。
最后,程序使用 `try-except` 结构来捕获可能出现的异常,例如输入的边长不是正数等。如果输入正确,程序就会调用相应的函数计算并输出结果。
阅读全文