1 问题描述
三角形是由同一平面内的三条线段首尾顺次相接所组成的封闭图形。
但不是任意长度的三边都可以构成三角形,构成三角形的三边必须满足条件:任意两边之和大于第三边
假设三角形的三边的长度分别是a,b,c,构成三角形的条件就是:
a+b>c 且 a+c>b 且b+c>a
当三边的长度可以构成三角形的时候,可以用海伦公式计算三角形的面积S:
其中,p为三角形的半周长(周长的一半):
今天用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是小数点的位数,本题保留两位小数