.利用断言编写程序。输入三角形的三边长,判断三边是否能构成三角形。若不能,抛出异常,显示异常信息“不能构成三角形”;否则,计算并输出三角形的面积(保留两位小数
时间: 2024-05-03 20:19:26 浏览: 78
下面是Python的实现:
```python
import math
def calc_triangle_area(a, b, c):
"""
计算三角形面积
"""
p = (a + b + c) / 2
area = math.sqrt(p * (p - a) * (p - b) * (p - c))
return round(area, 2)
def is_valid_triangle(a, b, c):
"""
判断三边能否构成三角形
"""
assert a > 0 and b > 0 and c > 0, '三边长度必须大于0'
assert a + b > c and b + c > a and a + c > b, '不能构成三角形'
return True
try:
a, b, c = map(float, input('请输入三角形的三边长,用空格分隔:').split())
is_valid_triangle(a, b, c)
area = calc_triangle_area(a, b, c)
print('三角形的面积为:', area)
except AssertionError as e:
print('错误:', e)
except ValueError:
print('输入格式错误,请输入三个数值,用空格分隔')
```
程序的主要流程如下:
1. 定义 `calc_triangle_area()` 函数,计算三角形面积;
2. 定义 `is_valid_triangle()` 函数,判断三边能否构成三角形,如果不能构成三角形,就抛出异常;
3. 在 `try` 语句块中,读取用户输入的三边长,调用 `is_valid_triangle()` 函数判断是否能构成三角形,如果能,则调用 `calc_triangle_area()` 函数计算面积,并输出;
4. 在 `except` 语句块中,捕获可能出现的异常,包括输入格式错误和三边长度小于等于0的情况。
阅读全文