确定直角三角形

时间:2017-10-03 21:01:13

标签: python

任务是有一个带有三个参数(a,b,c)的函数。 C始终是最长的一面。 该功能应确定角度C是否是直角的。这是我的代码:

import math

def is_rightangled(a, b, c):
    """
    >>> is_rightangled(3, 4, 5)
    True
    >>> is_rightangled(5, 12, 13)
    True
    >>> is_rightangled(8, 6, 10)
    True
    >>> is_rightangled(3, 4, 6)
    False
    >>> is_rightangled(1, 4, 6)
    False

    """
    A = math.acos((b**2 + c**2 - a**2) / (2 * b * c))*180/math.pi
    B = math.acos((c**2 + a**2 - b**2) / (2 * c * a))*180/math.pi

    angle = 180 - A - B

    if angle == 90:
        return True
    else: return False

这是我在使用Doctest时获得的:

> ********************************************************************** File "/home/niel/Desktop/Session2/is_rightangled.py", line 13, in
> is_rightangled.is_rightangled Failed example:
>     is_rightangled(1, 4, 6) Exception raised:
>     Traceback (most recent call last):
>       File "/usr/lib/python3.4/doctest.py", line 1324, in __run
>         compileflags, 1), test.globs)
>       File "<doctest is_rightangled.is_rightangled[4]>", line 1, in <module>
>         is_rightangled(1, 4, 6)
>       File "/home/niel/Desktop/Session2/is_rightangled.py", line 17, in is_rightangled
>         A = math.acos((b**2 + c**2 - a**2) / (2 * b * c))*180/math.pi
>     ValueError: math domain error
> ********************************************************************** 1 items had failures:    1 of   5 in is_rightangled.is_rightangled
> ***Test Failed*** 1 failures.

我尝试了多种解决方案,但总会遇到某种错误。

1 个答案:

答案 0 :(得分:3)

def is_rightangled(a, b, c):
    return (b**2 + a**2 == c**2)