1 问题描述

三角形是由同一平面内的三条线段首尾顺次相接所组成的封闭图形。

但不是任意长度的三边都可以构成三角形,构成三角形的三边必须满足条件:任意两边之和大于第三边
假设三角形的三边的长度分别是a,b,c,构成三角形的条件就是:
a+b>c 且 a+c>b 且b+c>a

当三边的长度可以构成三角形的时候,可以用海伦公式计算三角形的面积S:

 

                          

海德格尔三角形python 海德的三角形_赋值

 

其中,p为三角形的半周长(周长的一半):

                        

海德格尔三角形python 海德的三角形_三角形面积_02

 

今天用Python计算任意三角形面积:请用户输入三角形的三边长度,计算三角形面积~

海伦,古希腊数学家、力学家、机械学家,生平不详。 约公元62年活跃于亚历山大,在那里教过数学、物理学等课程。他多才多艺,善于博采众长,在论证中大胆使用某些经验性的近似公式,注重数学的实际应用。
海伦有许多学术著作,都用希腊文撰写,但大部分已失传。主要著作是《量度论》一书,该书共3卷,分别论述平面图形的面积,立体图形的体积和将图形分成比例的问题.其中卷I第8题给出著名的已知三边长求三角形面积的海伦公式。

2 解题思路

第一步: 用input函数请用户输入三条边的长度
第二步: 验证三角形是否成立
第三步: 用海伦公式计算面积
第四步: 输出结果

3 解题方法

 

a = float(input("输入三角形的第一条边长:"))
b = float(input("输入三角形的第二条边长:"))
c = float(input("输入三角形的第三条边长:"))

if a + b > c and a + c > b and b + c > a:
    p = (a + b + c) / 2
    s = pow(p * (p - a) * (p - b) * (p - c), 0.5)

    print(f"三角形的面积是{s: 0.2f}")

else:
    print("不能构成三角形,请重新输入!")

View Code

第1-3行: 分别定义变量a, b, c,input函数使用户输入三条边长,再用float函数将输入的字符串转换为浮点数
第5行: 用if...else语句判断用户输入的三条边是否可以构成三角形。若可以构成三角形,继续执行后续的代码;若不能构成三角形,则转到第11行,用print函数打印“不能构成三角形,请重新输入!”
第6行: 将三角形的半周长赋值给变量p
第7行: 根据海伦公式,用pow函数计算三角形的面积,并赋值给变量s

pow是power的缩写,power就是我们讲的“幂”
pow(x,y) 返回 x 的 y 次方的值,如pow(2,3)返回的是2的3次方,即2**3;亦可称为2的3次幂

第9行: 用print函数打印三角形的面积,0.2f是小数点的位数,本题保留两位小数