Логический тип (bool): True и False

Логический тип (bool): True и False Переменные и типы данных

Мы уже работали с числами и строками. Но в программировании есть ещё один очень важный тип данных — логический (булевый). Он нужен, когда мы хотим ответить на вопрос: «Да или нет?», «Верно или неверно?».

В этой статье мы разберём:

  • Что такое True и False
  • Операции сравнения
  • Логические операторы: andornot
  • Где используются булевы значения в реальном коде

Что нужно знать перед началом

Для этого урока тебе понадобится:

  • Установленный Python
  • Базовое понимание переменных и чисел

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

Совет: Представь, что True — это «включено», «да», «1». А False — «выключено», «нет», «0». Это поможет на первых порах.

Основная часть

Что такое bool

bool (от английского boolean — «булевый») — это тип данных, который может принимать только два значения:

  • True — истина (правда, да, 1)
  • False — ложь (неправда, нет, 0)

Важно: True и False пишутся с большой буквы! В Python регистр имеет значение.

is_sunny = True
is_raining = False

print(type(is_sunny))   # <class 'bool'>

Совет: Названия булевых переменных принято начинать с ishascan, чтобы сразу было понятно, что это вопрос «да/нет».

is_active = True
is_logged_in = False
has_permission = True
can_edit = False

Операции сравнения

Булевы значения чаще всего получаются в результате сравнения двух значений.

ОператорЗначениеПримерРезультат
==равно5 == 5True
!=не равно5 != 3True
>больше5 > 3True
<меньше5 < 3False
>=больше или равно5 >= 5True
<=меньше или равно5 <= 3False

Важно: Не путай = (присваивание) и == (сравнение). Это частая ошибка.

x = 10          # присваивание
x == 10         # сравнение — вернёт True

Примеры:

age = 18
is_adult = age >= 18
print(is_adult)   # True

score = 85
is_excellent = score > 90
print(is_excellent)   # False

name = "Анна"
is_admin = name == "Admin"
print(is_admin)   # False

Сравнение чисел с плавающей точкой

Особый случай — сравнение float. Из-за погрешностей (мы говорили об этом в статье про числа) сравнивать их напрямую не стоит.

print(0.1 + 0.2 == 0.3)   # False (из-за погрешности)

Плохо:

if a + b == 0.3:
    print("Равно")

Хорошо (с допуском):

if abs((a + b) - 0.3) < 0.000001:
    print("Примерно равно")

Логические операторы: and, or, not

Ты можешь комбинировать несколько условий с помощью логических операторов.

and — И (оба условия должны быть истинны)

age = 25
has_license = True

can_drive = age >= 18 and has_license
print(can_drive)   # True (оба условия выполнены)

or — ИЛИ (хотя бы одно условие истинно)

is_weekend = True
is_holiday = False

can_sleep = is_weekend or is_holiday
print(can_sleep)   # True (выходной есть)

not — НЕ (отрицание)

is_raining = False
good_weather = not is_raining
print(good_weather)   # True

Таблица истинности (для тех, кто любит наглядно):

ABA and BA or Bnot A
TrueTrueTrueTrueFalse
TrueFalseFalseTrueFalse
FalseTrueFalseTrueTrue
FalseFalseFalseFalseTrue

Приоритет логических операторов

Порядок выполнения:

  1. not (выполняется первым)
  2. and
  3. or (выполняется последним)
x = True
y = False
z = True

result = not x or y and z
# Сначала not x → False
# Потом y and z → False
# Потом False or False → False

# Чтобы не путаться, используй скобки
result = (not x) or (y and z)   # гораздо понятнее

Совет: Всегда используй скобки, если есть сомнения. Код станет понятнее.

Приведение других типов к bool

Любое значение в Python можно превратить в булево с помощью bool().

Какие значения считаются False:

ЗначениеПример
Nonebool(None) → False
0 (число)bool(0) → False
0.0bool(0.0) → False
"" (пустая строка)bool("") → False
[] (пустой список)bool([]) → False
{} (пустой словарь)bool({}) → False

Всё остальное считается True:

print(bool(5))          # True
print(bool(-1))         # True
print(bool("Привет"))   # True
print(bool([1, 2, 3]))  # True

Совет: Это позволяет писать короткие условия. Например, if name: вместо if name != "".

name = "Анна"

# Длинная версия
if name != "":
    print("Имя есть")

# Короткая версия
if name:
    print("Имя есть")

Где используются булевы значения в реальной жизни

Пример 1. Проверка возраста пользователя:

age = int(input("Сколько тебе лет? "))

if age >= 18:
    print("Доступ разрешён")
else:
    print("Доступ запрещён")

Пример 2. Проверка логина и пароля:

username = input("Логин: ")
password = input("Пароль: ")

correct_username = "admin"
correct_password = "12345"

if username == correct_username and password == correct_password:
    print("Добро пожаловать!")
else:
    print("Неверный логин или пароль")

Пример 3. Проверка прав пользователя:

is_admin = True
is_editor = False

if is_admin or is_editor:
    print("Доступ к редактированию разрешён")
else:
    print("Нет прав для редактирования")

Задачи для закрепления

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

Задача 1. Проверь, является ли число чётным. Создай булеву переменную is_even и выведи результат.

Задача 2. Пользователь вводит число. Если оно больше 0, выведи «positive», если меньше 0 — «negative», если равно 0 — «zero».

Задача 3. Проверь, что число x находится в диапазоне от 10 до 20 (включительно). Создай булеву переменную is_in_range.

Задача 4. Пользователь вводит свой возраст и статус студента (True/False). Выдай скидку 50%, если возраст от 18 до 25 ИЛИ он студент.

Задача 5. Что выведет код? print(not True and False or True)

Ответы:

Задача 1

number = 8
is_even = number % 2 == 0
print(is_even)   # True

Задача 2

num = int(input("Введите число: "))
if num > 0:
    print("positive")
elif num < 0:
    print("negative")
else:
    print("zero")

Задача 3

x = 15
is_in_range = 10 <= x <= 20
print(is_in_range)   # True

Задача 4

age = int(input("Возраст: "))
is_student = input("Студент? (True/False): ") == "True"
if (18 <= age <= 25) or is_student:
    print("Скидка 50%")
else:
    print("Скидки нет")

Задача 5

# not True → False
# False and False → False
# False or True → True
print(not True and False or True)   # True

Нюансы и подводные камни

Путаница между = и ==

Неправильно:

if age = 18:    # Ошибка! Это присваивание, а не сравнение
    print("18 лет")

Правильно:

if age == 18:
    print("18 лет")

Сравнение float напрямую

Неправильно:

if 0.1 + 0.2 == 0.3:
    print("Равно")   # Не сработает

Правильно:

result = 0.1 + 0.2
if abs(result - 0.3) < 1e-10:
    print("Примерно равно")

Неправильный порядок операторов без скобок

Неправильно (непонятно):

if x > 0 and y > 0 or z > 0:
    print("Что-то")

Правильно (скобки — наше всё):

if (x > 0 and y > 0) or z > 0:
    print("Что-то")

Частые ошибки и как их избежать

Ошибка 1: Одна = вместо == в условии

Как избежать: всегда проверяй, что в if написано == (сравнение), а не = (присваивание).

Ошибка 2: Прямое сравнение float

Как избежать: используй abs() и маленький допуск.

Ошибка 3: Путаница с приоритетом and и or

Как избежать: используй скобки, даже если кажется, что они не нужны.

Шпаргалка (быстрый справочник)

Что нужноКак пишется
ИстинаTrue
ЛожьFalse
Равноa == b
Не равноa != b
Иa and b
ИЛИa or b
НЕnot a
Превратить в boolbool(x)
Проверка условияif x > 0:
Короткая проверка на существованиеif name: (не пусто)

Заключение / Выводы

Сегодня мы узнали:

  • bool — тип данных с двумя значениями: True и False
  • Операции сравнения==!=><>=<=
  • Логические операторыandornot
  • Приведение типов к bool — что считается False
  • Реальные примеры использования в условиях

Квиз

Что дальше?

Булева логика — это фундамент принятия решений в программах. Теперь ты можешь писать код, который делает разные вещи в зависимости от условий.

Оцените статью
IMI-DS - PYTHON LERNEN
Содержание
Оглавление ×