p和面积联系起来可以用表达式来联系,根据题目给出的信息,可以如下思考:
首先定义求三角形面积的函数,a,b,c 代表三角形的三条边的长度,利用它们可以求出p,然后利用p可以求出面积s,把这些组合在一起就可以定义一个求三角形的面积的函数;
然后调用三次函数来求三个三角形的面积;
最后利用这三个面积可以求出阴影部分的面积。
代码如下:
参考链接:
python开平方怎么写-常见问题-PHP中文网
import math
def area(a,b,c):
p = (a+b+c)/2
#https://www.php.cn/faq/419140.html
s = math.sqrt(p*(p-a)*(p-b)*(p-c))
return s
s1=area(9.8,9.3,6.4) #求大三角形的面积
s2=area(2.9,4.1,4.7) #求中间空白三角形的面积
s3=area(2.0,1.4,2.3) #求空白三角形中的阴影小三角形的面积
shadowArea = s1-s2+s3 #计算最后阴影部分的面积
print(shadowArea)
如果不借助math等外部库,也可以达到同样目的和效果:
def solution(a,b,c):
S = []
for i in range(3):
p = (a[i] + b[i] + c[i]) / 2
S.append((p * (p - a[i]) * (p - b[i]) * (p - c[i])) ** (1/2))
result = S[0] - S[1] + S[2]
return result
print(solution([9.8,2.9,2.0],[9.3,4.1,1.4],[6.4,4.7,2.3]))
其中,solution函数是主函数。传参时传入3个3元素列表即可,它们分别代表三角形三边(a,b,c)。