python如何判断三角形

判断三角形需满足三边均为正且任意两边之和大于第三边;满足后可进一步按边长关系分类为等边、等腰或直角三角形。

判断三角形的关键是看三条边是否满足三角形不等式:任意两边之和大于第三边。只要这个条件成立,就能构成一个有效的三角形(非退化三角形)。Python 中只需用简单的比较逻辑即可实现。

基本判断逻辑

给定三边长度 abc(要求都为正数),需同时满足:

  • a + b > c
  • a + c > b
  • b + c > a

三者全为真,才是三角形。注意:如果某边 ≤ 0,直接排除——边长必须为正。

代码实现示例

以下是一个简洁可靠的函数:

def is_triangle(a, b, c):
    if a <= 0 or b <= 0 or c <= 0:
        return False
    return (a + b > c) and (a + c > b) and (b + c > a)

调用示例:
print(is_triangle(3, 4, 5)) # True
print(is_triangle(1, 2, 5)) # False
print(is_triangle(0, 4, 4)) # False

进阶:判断三角形类型

在确认是三角形的前提下,可进一步分类:

  • 等边三角形:a == b == c
  • 等腰三角形:a == b 或 b == c 或 a == c(且不等边)
  • 直角三角形:满足勾股定理(需先排序,避免判断顺序影响),如 sorted([a,b,c])**2 后验证 x² + y² == z²

注意:浮点数比较建议加小误差容限(如 abs(a**2 + b**2 - c**2) ),避免精度问题。

常见易错点提醒

输入可能是字符串或负数,务必先做类型与范围校验:

  • try-except 处理非数字输入
  • 确保三边为实数且大于 0
  • 不要忽略“退化三角形”(三点共线,如 1, 2, 3 → 1+2==3),它不被视为有效三角形

基本上就这些。核心就一条:三正数,且两两之和严格大于第三边。