Как я могу отладить свой код Python, чтобы проверить, могут ли данные образовывать треугольник или нет - PullRequest
0 голосов
/ 26 апреля 2020

Цель кода - определить, возможно ли сформировать треугольник с заданными аргументами. Теория говорит, что сумма двух произвольных сторон должна быть больше, чем третья сторона и, согласно кодированию, но это не показывает правильный ответ.

Моя задача вернуть True , если аргументы делают это возможным, и возвращать False , если это не так.

def isItATriangle(a, b, c):
    if a + b > c or a + c > b or b + c > a:
        return True

    else:
        return False

print(isItATriangle(1 , 1, 3))

Почему код не работает должным образом?

Вместо

if a + b > c or a + c > b or b + c > a:
            return True

        else:
            return False

Главный правый код показывает это

if a + b <= c:
        return False
    if b + c <= a:
        return False
    if c + a <= b:
        return False
    return True

Как определить, в какой части лога c я ошибаюсь?

Ответы [ 2 ]

1 голос
/ 26 апреля 2020

Исправлено и упрощено:

def isItATriangle(a, b, c):
    return a + b > c and a + c > b and b + c > a:

print(isItATriangle(1 , 1, 3))
1 голос
/ 26 апреля 2020

Чтобы вернуть true, вы должны выполнить все условия, а не только одно из них. Из-за этого ваш код должен быть:

def isItATriangle(a, b, c):
    if a + b > c and a + c > b and b + c > a:
        return True

    else:
        return False

print(isItATriangle(1 , 1, 3))

Это означает, что ваш or меняется на and. Вы можете узнать больше о Python логических операторах здесь или здесь .

...