Зарегистрируйтесь, чтобы продолжить обучение

Логический тип Основы Python

Кроме арифметических операций в математике есть операции сравнения, например, 5 > 4 или 3 < 1. Они есть и в программировании. Сравнения часто применяются в реальных задачах, связанных с числами. Например, когда мы оформляем покупку в интернет-магазине, система проверяет: хватает ли у пользователя денег на счёте, чтобы оплатить товар. Если сумма на счёте больше или равна цене товара, заказ подтверждается. Если меньше — появляется сообщение, что средств недостаточно.

Сравнение в программировании

Начнем с примера в котором сравнивается два числа:

print(5 > 4)  # => True
print(4 > 4)  # => False

Результатом сравнения является значение типа bool. У это типа есть всего два возможных варианта True и False. Причем обратите внимание, это не строки. Их можно использовать напрямую:

print(True)
print(False)

На практике, их редко так используют, но на их основе строится логика поведения программы. Мы с этим сталкиваемся буквально каждый день когда вводим пинкоды и пароли, когда выполняем какие-то действия, результатом которых могут быть разные варианты. Все эти варианты прописаны внутри программы в виде условных выражений: если так то делай раз, если по-другому, то делай два.

Список операций сравнения:

  • < — меньше
  • <= — меньше или равно
  • > — больше
  • >= — больше или равно
  • == — равно
  • != — не равно

Языки программирования адаптировали все математические операции сравнения в неизменном виде, кроме операторов равенства и неравенства. В математике для этого используется обычное равно =, но в программировании символ =, чаще всего, используется, чтобы присвоить переменным значения. Поэтому в Python сравнивают с помощью ==. Несколько примеров:

print(5 >= 3)  # => True
print(7 < 0)   # => False
print(5 > 5)   # => False
print(5 >= 5)  # => True
print(2 == 5)  # => False
print(2 != 5)  # => True

Когда в сравнении используют конкретные значения, то эта операция кажется бесмысленной, мы и так знаем ее результат сравнения и он всегда один и тот же, потому что если 3 больше 2, то это не меняется. Но все меняется, когда значения могут меняться. Попробуем написать простую функцию, которая принимает на вход возраст ребенка и определяет, младенец ли он. Младенцами считаются дети до двух лет (два не включается):

def is_infant(age: int) -> bool:
    return age < 2

print(is_infant(3))  # => False
print(is_infant(2))  # => False
print(is_infant(1))  # => True
print(is_infant(0))  # => True

Когда функции возвращают результат сравнения, они обычно отвечают на вопрос «да» или «нет». Такие функции называют предикатами. Их легко узнать по тому, что они возвращают логическое значение True или False. Часто в их названии есть вопрос или утверждение, которое можно проверить (is', 'has, can). Вот функция, проверяющая, является ли число чётным:

def is_negative(number: int) -> bool:
    # Проверяем остаток от деления
    return number < 0

print(is_negative(-5))  # => True
print(is_negative(7))  # => False

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff