写点什么

Python 应用之计算三角形面积

作者:向阳逐梦
  • 2022 年 10 月 01 日
    四川
  • 本文字数:1297 字

    阅读完需:约 4 分钟

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

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

1.背景知识

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

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

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

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

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("不能构成三角形,请重新输入!")
复制代码

第 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 是小数点的位数,本题保留两位小数

这就是用程序来实现构建三角形,计算三角形的面积的一种方法。

还有一种方法是可以通过代码进行判断,看是否可以构成三角形。

具体代码如下:

#计算三角形面积while(True):    triangle = input('输入三角形三边(如10,6,8):')    sides = [int(side) for side in triangle.split(',')]    a,b,c = sides
#判断输入的三角形是否合法 if a + b > c and a + c > b and b + c > a : s = a * b * (1-((a**2 + b**2 - c**2)/(2*a*b))**2) ** 0.5/2 print('三角形({0[0]},{0[1]},{0[2]})的面积是:{1}'.format(sides,s)) break else: print('三角形不合法')
复制代码

这个代码可以更加直观的看出用户输入的三个数字,然后进行判断,是否可以组成三角形,能够组成就可以计算出三角形的面积,不能组成就打印三角形不合法。

发布于: 刚刚阅读数: 5
用户头像

向阳逐梦

关注

人生享受编程,编程造就人生! 2022.06.01 加入

InfoQ签约作者、阿里云“乘风者计划”签约博主

评论

发布
暂无评论
Python应用之计算三角形面积_10月月更_向阳逐梦_InfoQ写作社区