Python | 输入三角形三个顶点的坐标,若有效则计算三角形的面积;如坐标无效,则给出提示

问题

输入三角形三个顶点的坐标,若有效则计算三角形的面积;如坐标无效,则给出提示

解决

import math


def isvalid(a=0.0, b=0.0, c=0.0):
    """判断三条边长是否符合三角形的定义:任意两边之和大于第三边或者任意两边之差小于第三边"""
    side = [a, b, c]
    side.sort()
    if side[0] + side[1] > side[2] or side[2] - side[1] < side[0]:
        return True
    else:
        return False


def calculate_area():
    """获取三角形的三个顶点坐标并计算该三角形的面积"""
    x1, y1 = map(int, input('请输入第一个顶点坐标:').split())
    x2, y2 = map(int, input('请输入第一个顶点坐标:').split())
    x3, y3 = map(int, input('请输入第一个顶点坐标:').split())

    # 计算三条边长
    side1 = math.sqrt((x1 - x2) ** 2 + (y1 - y2) ** 2)
    side2 = math.sqrt((x1 - x3) ** 2 + (y1 - y3) ** 2)
    side3 = math.sqrt((x2 - x3) ** 2 + (y2 - y3) ** 2)

    # 调用 isvalid() 函数,判断是否能够构成三角形
    if isvalid(side1, side2, side3):
        # 计算半周长
        s = (side1 + side2 + side3) / 2
        # 计算面积
        area = (s * (s - side1) * (s - side2) * (s - side3)) ** 0.5
        print('三角形的面积为:{:.2f}'.format(area))
    else:
        print('坐标无效,无法构成三角形')


if __name__ == '__main__':
    calculate_area()

运行结果:

请输入第一个顶点坐标:0 0
请输入第一个顶点坐标:0 1
请输入第一个顶点坐标:0 2
坐标无效,无法构成三角形

请输入第一个顶点坐标:0 0
请输入第一个顶点坐标:0 1
请输入第一个顶点坐标:1 0
三角形的面积为:0.50
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值