疯狂python第六章课后练习题3

本篇博客介绍了一个Python程序,该程序通过输入三个点的坐标来计算任意两点间的距离,并判断由这三点组成的三角形是直角、钝角还是锐角三角形。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

给定两个点的坐标(x,y)属性,确定两点之间的距离。

再给定第三点,判断三点能否构成三角形,构成的三角形是哪种类型(直角,钝角,锐角)

 

import math


class Point:
    def __init__(self, x, y):
        self.x = x
        self.y = y


def Distance(A, B):
    distance = math.sqrt((A.x - B.x) ** 2 + (A.y - B.y) ** 2)
    return distance


A = Point(5, 10)
print('A点的坐标为(5, 10)')
B = Point(-3, 10)
print('B点的坐标为(-3, 10)')
# d = Distance(A, B)
# print(f'AB两点间的距离为{d})
print('请分别输入C点的坐标,以回车键间隔')
C = Point(float(input()), float(input()))
# 两两间距
a = Distance(B, C)  # 点A对的边
b = Distance(A, C)  # 点B对的边
c = Distance(A, B)  # 点C对的边
if min(a, b, c) == 0 or (C.y-B.y)/(C.x-B.x) == (C.y-A.y)/(C.x-A.x):#保证无重合点或者三点不在一条直线上
    print(f'({A.x},{A.y}), ({B.x},{B.y}), ({C.x},{C.y})这三个点不构成三角形')
else:
# 余弦公式
    cosA = (b ** 2 + c ** 2 - a ** 2) / (2 * b * c)
    cosB = (a ** 2 + c ** 2 - b ** 2) / (2 * a * c)
    cosC = (b ** 2 + a ** 2 - c ** 2) / (2 * b * a)


    Min = min(cosA, cosB, cosC)

    if Min < 0:
        print('这是个钝角三角形')  # 三角形中钝角的余弦小于0
    elif Min == 0:
        print('这是个直角三角形')  # 直角的余弦为0
    else:
        print('这是个锐角三角形')  # 三个角的余弦都大于0

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值