用python设计并编写一个求三角形面积的函数,含有四个形参,其中参数k的默认值为None,若没有重新传递数据给参数k,则传入的三个数据为三角形的三个边长,若传递数据1给参数k,则传入的其它三个参数为三角形的二个边长和其夹角,若传递数据2给参数k,则传入的其它三个参数为一个边长和其相邻的两个夹角,请根据这些参数分别求出三角形的面积。注意:要求在此题中采用try—except异常处理结构,如果输入的数据不能构成三角形以求得面积,则给出错误提示,再结束程序运行。
时间: 2023-05-11 11:03:24 浏览: 104
以下是求三角形面积的函数代码:
```python
def triangle_area(a, b, c, k=None):
import math
if k == None:
# 三边求面积
p = (a + b + c) / 2
try:
area = math.sqrt(p * (p - a) * (p - b) * (p - c))
except ValueError:
print("输入的三边无法构成三角形!")
return
elif k == 1:
# 两边一角求面积
angle = math.radians(c)
try:
area = 0.5 * a * b * math.sin(angle)
except ValueError:
print("输入的两边和夹角无法构成三角形!")
return
elif k == 2:
# 一边两角求面积
angle1 = math.radians(b)
angle2 = math.radians(c)
try:
area = 0.5 * a * a * math.sin(angle1) * math.sin(angle2) / math.sin(angle1 + angle2)
except ValueError:
print("输入的一边和两个夹角无法构成三角形!")
return
else:
print("参数k的值必须为0、1或2!")
return
return area
```
在函数中,我们首先导入了math模块,用于计算三角函数。然后,我们根据参数k的不同取值,分别计算三角形的面积。在计算过程中,我们使用了try-except结构来捕获可能出现的ValueError异常,如果输入的数据无法构成三角形,则给出错误提示并结束程序运行。
下面是一些示例:
```python
# 三边求面积
print(triangle_area(3, 4, 5)) # 6.0
print(triangle_area(3, 4, 7)) # 输入的三边无法构成三角形!
# 两边一角求面积
print(triangle_area(3, 4, 90, k=1)) # 6.0
print(triangle_area(3, 4, 180, k=1)) # 输入的两边和夹角无法构成三角形!
# 一边两角求面积
print(triangle_area(3, 60, 90, k=2)) # 3.8971143170299736
print(triangle_area(3, 120, 60, k=2)) # 输入的一边和两个夹角无法构成三角形!
```
注意,我们在调用函数时,可以不传递参数k,此时函数会默认按照三边求面积的方式计算。如果传递了参数k,就需要根据k的取值来传递其它三个参数。
阅读全文