1. a = float(input('输入三角形第一边长: '))
    2. b = float(input('输入三角形第二边长: '))
    3. c = float(input('输入三角形第三边长: '))
    4. # 计算半周长
    5. s = (a + b + c) / 2
    6. # 计算面积
    7. area = (s*(s-a)*(s-b)*(s-c)) ** 0.5
    8. print('三角形面积为{0:0.2f}'.format(area))

    执行以上代码输出结果为:

    1. 输入三角形第一边长: 5
    2. 输入三角形第二边长: 6
    3. 输入三角形第三边长: 7
    4. 三角形面积为 14.70

    在实际过程中我们会发现,当我们输入“2”、“2”、“4”的时候,程序会返回结果 0。这是为什么呢?
    根据三角形的定义“两边之和大于第三边”,我们可以得知我们输出的三角形数据是非法的,因此海伦公式计算出来的结果为 0。那么我们该如何调整程序呢

    1. a = float(input('输入三角形第一边长: '))
    2. b = float(input('输入三角形第二边长: '))
    3. c = float(input('输入三角形第三边长: '))
    4. #判断三边是否构成三角形,若能则利用海伦公式计算并输出面积,否则输出不能构成三角形
    5. if (a+b>c) and (a+c>b) and (b+c>a):
    6. # 计算半周长
    7. s = (a + b + c) / 2
    8. # 计算面积
    9. area = (s*(s-a)*(s-b)*(s-c)) ** 0.5
    10. print('三角形面积为{0:0.2f}'.format(area))
    11. else:
    12. print('三边不能构成三角形')

    现在当我们输入非法三角形数据的时候,程序会提示我们“三边不能构成三角形”

    感谢内测群 余宇宙-清远 提供程序