程序输入三角形的3条边,计算三角形的面积,要求对程序进行异常处理,(1)当输入的数据不为数字类型时,抛出 ValueError 异常,(2)使用 assert 断言:两边之和大于第三边,抛出 Asse
时间: 2024-12-26 14:29:10 浏览: 3
当你编写一个程序来计算三角形面积时,确实需要考虑一些异常情况以保证计算的合法性。首先,你需要接收用户输入的三条边长,这时你可以这样做:
```python
def calculate_triangle_area(side1, side2, side3):
try:
# 将字符串转换为浮点数,如果输入不是数字,会触发 ValueError
side1 = float(side1)
side2 = float(side2)
side3 = float(side3)
# 使用 assert 断言条件
assert side1 + side2 > side3 and side1 + side3 > side2 and side2 + side3 > side1, "三边长度必须满足三角形条件"
# 计算半周长
s = (side1 + side2 + side3) / 2
# 根据海伦公式计算面积
area = (s * (s - side1) * (s - side2) * (s - side3)) ** 0.5
return area
except ValueError:
raise ValueError("输入的数据必须为数字类型")
except AssertionError as e:
print(e)
# 示例使用
try:
a = input("请输入三角形第一条边:")
b = input("请输入三角形第二条边:")
c = input("请输入三角形第三条边:")
triangle_area = calculate_triangle_area(a, b, c)
if triangle_area is not None:
print(f"三角形的面积是:{triangle_area}")
except ValueError as ve:
print(str(ve))
```
在这个程序中,我们捕获了`ValueError`(非数字输入)和`AssertionError`(三角形条件不成立),并在相应情况下抛出异常。
阅读全文