Python: Предикаты
Вспомним функцию is_infant()
из прошлого урока:
def is_infant(age):
return age < 1
print(is_infant(3))
False
is_infant()
— это функция-предикат (или функция-вопрос).
Предикат отвечает на утвердительный вопрос «да» или «нет», возвращая значение типа bool.
Предикаты во всех языках принято именовать особым образом для простоты анализа. В Python предикаты, как правило, начинаются с префикса is
или has
:
is_infant()
— «младенец ли?»has_children()
— «есть ли дети?»is_empty()
— «пустой ли?»has_errors()
— «есть ли ошибки?»
Функция может считаться предикатом, только если она возвращает bool
.
Давайте напишем еще одну функцию-предикат. Она принимает строку и проверяет, является ли она словом 'Castle'
:
def is_castle(string):
return string == 'Castle'
print(is_castle('Sea'))
False
Задание
Напишите функцию is_mister()
, которая принимает строку и проверяет, является ли она словом 'Mister'
.
is_mister('Mister') # True
is_mister('Missis') # False
Советы
Определения
Предикат - выражение, отвечающее на вопрос «да» или «нет» с помощью типа bool.
Нашли ошибку? Есть что добавить? Пулреквесты приветствуются https://github.com/hexlet-basics
Если вы столкнулись с трудностями и не знаете, что делать, задайте вопрос в нашем большом и дружном сообществе