描述 编写一个名为area()的函数,函数有三个参数,对应三角形的三条边,实现以下功能:
先判断三条边能否构成三角形,如果不能直接返回-1,否则返回三角形的面积,保留2位小数。输入描述 系统自动设置输入参数,无需写相应输入代码
输出描述 由系统自动调用area()函数,输出函数的执行结果。
模块导入 from math import sqrt
def area(a,b,c):
a,b,c=sorted([a,b,c])
if a+b<c:
return -1
else:
p=(a+b+c)/2
s=p*(p-a)*(p-b)*(p-c)
return s**0.5
下面是完整代码实现和注释,望采纳
from math import sqrt
def area(a, b, c):
# 先判断三条边能否构成三角形
if a + b > c and a + c > b and b + c > a:
# 计算半周长
s = (a + b + c) / 2
# 使用海伦公式计算面积
area = sqrt(s * (s - a) * (s - b) * (s - c))
# 返回面积,保留两位小数
return round(area, 2)
else:
# 如果不能构成三角形,返回-1
return -1
调用该函数时,可以像下面这样:
# 输入三角形的三条边
a = float(input('请输入三角形的第一条边:'))
b = float(input('请输入三角形的第二条边:'))
c = float(input('请输入三角形的第三条边:'))
# 调用area函数并输出结果
print(area(a, b, c))
from math import sqrt
def area(a=0,b=0,c=0):
# 根据两边之和大于第三边,两边之差小于第三边判断是否满足构成三角形的条件
if a+b > c:
if abs(a-b) < c:
# 根据海伦公式计算三角形面积
p = (a + b + c) / 2 # 海伦公式
D = p * (p - a) * (p - b) * (p - c)
S = sqrt(D) # 已知三角形三边a,b,c,则S=sqrt[p(p-a)(p-b)(p-c)]
return "%.2f" % S
else:
return -1
# a = float(input(" 请输入三角形第一条边长a:"))
# b = float(input(" 请输入三角形第二条边长b:"))
# c = float(input(" 请输入三角形第三条边长c:"))
# result = area(a=a,b=b,c=c)
result = area(a=3,b=4,c=5)
print("该三角形的面积为:" , result)