Мы уже работали с числами и строками. Но в программировании есть ещё один очень важный тип данных — логический (булевый). Он нужен, когда мы хотим ответить на вопрос: «Да или нет?», «Верно или неверно?».
В этой статье мы разберём:
- Что такое
TrueиFalse - Операции сравнения
- Логические операторы:
and,or,not - Где используются булевы значения в реальном коде
- Что нужно знать перед началом
- Основная часть
- Что такое bool
- Операции сравнения
- Сравнение чисел с плавающей точкой
- Логические операторы: and, or, not
- Приоритет логических операторов
- Приведение других типов к bool
- Где используются булевы значения в реальной жизни
- Задачи для закрепления
- Нюансы и подводные камни
- Путаница между = и ==
- Сравнение float напрямую
- Неправильный порядок операторов без скобок
- Частые ошибки и как их избежать
- Ошибка 1: Одна = вместо == в условии
- Ошибка 2: Прямое сравнение float
- Ошибка 3: Путаница с приоритетом and и or
- Шпаргалка (быстрый справочник)
- Заключение / Выводы
- Квиз
- Что дальше?
Что нужно знать перед началом
Для этого урока тебе понадобится:
- Установленный 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'>Совет: Названия булевых переменных принято начинать с
is,has,can, чтобы сразу было понятно, что это вопрос «да/нет».
is_active = True
is_logged_in = False
has_permission = True
can_edit = FalseОперации сравнения
Булевы значения чаще всего получаются в результате сравнения двух значений.
| Оператор | Значение | Пример | Результат |
|---|---|---|---|
== | равно | 5 == 5 | True |
!= | не равно | 5 != 3 | True |
> | больше | 5 > 3 | True |
< | меньше | 5 < 3 | False |
>= | больше или равно | 5 >= 5 | True |
<= | меньше или равно | 5 <= 3 | False |
Важно: Не путай
=(присваивание) и==(сравнение). Это частая ошибка.
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Таблица истинности (для тех, кто любит наглядно):
| A | B | A and B | A or B | not A |
|---|---|---|---|---|
| True | True | True | True | False |
| True | False | False | True | False |
| False | True | False | True | True |
| False | False | False | False | True |
Приоритет логических операторов
Порядок выполнения:
not(выполняется первым)andor(выполняется последним)
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:
| Значение | Пример |
|---|---|
None | bool(None) → False |
0 (число) | bool(0) → False |
0.0 | bool(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 |
| Превратить в bool | bool(x) |
| Проверка условия | if x > 0: |
| Короткая проверка на существование | if name: (не пусто) |
Заключение / Выводы
Сегодня мы узнали:
- bool — тип данных с двумя значениями:
TrueиFalse - Операции сравнения:
==,!=,>,<,>=,<= - Логические операторы:
and,or,not - Приведение типов к
bool— что считаетсяFalse - Реальные примеры использования в условиях
Квиз
Что дальше?
Булева логика — это фундамент принятия решений в программах. Теперь ты можешь писать код, который делает разные вещи в зависимости от условий.








