Бесплатный курс по python. Зарегистрируйтесь для отслеживания прогресса →

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
Если вы столкнулись с трудностями и не знаете, что делать, задайте вопрос в нашем большом и дружном сообществе