Некоторые простые функции: продолжение
А теперь поиграем с треугольниками. Мы начнем с функции, чтобы проверить, могут ли три стороны заданной длины построить треугольник.
Из школы мы знаем, что сумма двух произвольных сторон должна быть больше длины третьей стороны.
Это не будет сложной задачей. У функции будет три параметра - по одному для каждой стороны.
Она вернет 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
, получив универсальное выражение для проверки треугольников).
Давайте добавим функцию в программу побольше. Она запросит у пользователя три значения и воспользуется функцией.