编写程序,按用户输入的三角形3条边判断能否构成直角三角形,若能构成则计算三角形的面积与周长,否则引发异常。 python
时间: 2024-05-11 18:20:21 浏览: 108
可以使用以下代码实现:
```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 abs(sides[0]**2 + sides[1]**2 - sides[2]**2) < 1e-6
def area(self):
s = (self.a + self.b + self.c) / 2.0
return math.sqrt(s * (s - self.a) * (s - self.b) * (s - self.c))
def perimeter(self):
return self.a + self.b + self.c
try:
a = float(input("输入三角形第一条边长:"))
b = float(input("输入三角形第二条边长:"))
c = float(input("输入三角形第三条边长:"))
triangle = Triangle(a, b, c)
if triangle.is_right_triangle():
print("能构成直角三角形")
print("面积为:", triangle.area())
print("周长为:", triangle.perimeter())
else:
raise ValueError("无法构成直角三角形")
except ValueError as e:
print("输入不合法:", e)
```
运行效果:
```
输入三角形第一条边长:3
输入三角形第二条边长:4
输入三角形第三条边长:5
能构成直角三角形
面积为: 6.0
周长为: 12.0
```
```
输入三角形第一条边长:1
输入三角形第二条边长:2
输入三角形第三条边长:3
输入不合法: 无法构成直角三角形
```
阅读全文