Module (50%)
Section (33%)

Некоторые простые функции: продолжение

А теперь поиграем с треугольниками. Мы начнем с функции, чтобы проверить, могут ли три стороны заданной длины построить треугольник.

A triangle with equal sides

Из школы мы знаем, что сумма двух произвольных сторон должна быть больше длины третьей стороны.

Это не будет сложной задачей. У функции будет три параметра - по одному для каждой стороны.

Она вернет True, если стороны могут образовать треугольник, и False в противном случае. В этом случае is_a_triangle - хорошее название для такой функции.


Посмотрите на код в редакторе. Вы найдете нашу функцию в нем. Запустите программу.

Кажется, хорошо работает - вот результаты:

True False

output


Можно ли сделать код более компактным? Он выглядит многословно.

Более компактная версия:

def is_a_triangle(a, b, c): if a + b <= c or b + c <= a or c + a <= b: return False return True print(is_a_triangle(1, 1, 1)) print(is_a_triangle(1, 1, 3))

Можем ли мы сократить его еще больше?

Да, можем - посмотрите:

def is_a_triangle(a, b, c): return a + b > c and b + c > a and c + a > b print(is_a_triangle(1, 1, 1)) print(is_a_triangle(1, 1, 3))

Мы отменили условие (поменяли местами операторы отношения и заменили or на and, получив универсальное выражение для проверки треугольников).

Давайте добавим функцию в программу побольше. Она запросит у пользователя три значения и воспользуется функцией.


Code

def is_a_triangle(a, b, c):
if a + b <= c:
return False
if b + c <= a:
return False
if c + a <= b:
return False
return True


print(is_a_triangle(1, 1, 1))
print(is_a_triangle(1, 1, 3))
{{ dockerServerErrorMsg }} ×
{{ errorMsg }} ×
{{ successMsg }} ×