Elementor Header #8

51. Предикаты

Добро пожаловать на 51-й урок по Python! Сегодня мы будем говорить о предикатах. Предикаты — это функции или выражения, которые возвращают логическое значение (True или False). Они играют важную роль в программировании, особенно когда нужно фильтровать или проверять данные.

Что такое предикаты?

Предикат — это функция, которая возвращает логическое значение. В Python, предикаты часто используются для проверки условий и фильтрации данных.

Основные примеры предикатов

Функция проверки четности

				
					def is_even(n: int) -> bool:
    return n % 2 == 0

print(is_even(4))  # Вывод: True
print(is_even(5))  # Вывод: False

				
			

Функция проверки наличия элемента в списке

				
					def contains_element(lst: list, element) -> bool:
    return element in lst

print(contains_element([1, 2, 3], 2))  # Вывод: True
print(contains_element([1, 2, 3], 4))  # Вывод: False

				
			

Почему использовать предикаты?

1. Упрощение кода

Предикаты позволяют создавать более читаемый и структурированный код, особенно в условиях и циклах.

Пример

				
					def filter_positives(numbers: list) -> list:
    return [n for n in numbers if is_even(n)]

print(filter_positives([1, 2, 3, 4, 5]))  # Вывод: [2, 4]

				
			

2. Функции высшего порядка

Предикаты можно передавать в функции высшего порядка, такие как filter, map, и sorted, чтобы сделать код более декларативным.

Пример с filter

				
					def is_odd(n: int) -> bool:
    return n % 2 != 0

numbers = [1, 2, 3, 4, 5]
odd_numbers = list(filter(is_odd, numbers))
print(odd_numbers)  # Вывод: [1, 3, 5]

				
			

Предикаты и лямбда-функции

Лямбда-функции — это удобный способ определения предикатов для одноразового использования. Они помогают создать компактный и читаемый код.

Пример

				
					# Использование лямбда-функции с filter
numbers = [1, 2, 3, 4, 5]
even_numbers = list(filter(lambda n: n % 2 == 0, numbers))
print(even_numbers)  # Вывод: [2, 4]

				
			

Применение предикатов

1. Проверка данных

Предикаты часто используются для проверки данных перед выполнением операций или сохранением данных.

Пример

				
					def validate_age(age: int) -> bool:
    return 0 <= age <= 120

print(validate_age(25))   # Вывод: True
print(validate_age(130))  # Вывод: False

				
			

2. Условное выполнение

Предикаты могут использоваться для определения, нужно ли выполнять определенный блок кода.

Пример

				
					def perform_action(is_active: bool) -> None:
    if is_active:
        print("Action performed")
    else:
        print("No action taken")

perform_action(True)  # Вывод: Action performed
perform_action(False) # Вывод: No action taken

				
			

Заключение

Сегодня мы изучили предикаты в Python — функции, которые возвращают логическое значение. Вы узнали, как использовать предикаты для проверки условий, фильтрации данных и работы с функциями высшего порядка. Понимание предикатов поможет вам писать более чистый и понятный код.

logo