-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path04_boolean_tutorial.py
More file actions
102 lines (82 loc) · 4.05 KB
/
04_boolean_tutorial.py
File metadata and controls
102 lines (82 loc) · 4.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
# 1. Булевы значения (Boolean)
# Есть только два значения: True и False (с заглавной буквы!)
is_active = True
is_deleted = False
print(f"is_active: {is_active}, тип: {type(is_active)}")
print(f"is_deleted: {is_deleted}")
# 2. Операторы сравнения (возвращают boolean)
x = 10
y = 5
print(f"{x} == {y}: {x == y}") # Равно: False
print(f"{x} != {y}: {x != y}") # Не равно: True
print(f"{x} > {y}: {x > y}") # Больше: True
print(f"{x} < {y}: {x < y}") # Меньше: False
print(f"{x} >= {y}: {x >= y}") # Больше или равно: True
print(f"{x} <= {y}: {x <= y}") # Меньше или равно: False
# 3. Логические операторы
a = True
b = False
print(f"{a} and {b}: {a and b}") # И (оба должны быть True): False
print(f"{a} or {b}: {a or b}") # ИЛИ (хотя бы один True): True
print(f"not {a}: {not a}") # НЕ (инверсия): False
# 4. Комбинирование условий
age = 25
has_license = True
# Можно водить машину, если возраст >= 18 И есть права
can_drive = age >= 18 and has_license
print(f"Может водить: {can_drive}")
# 5. Приоритет логических операций
# not > and > or
result = True or False and False
print(f"True or False and False = {result}") # True (сначала and, потом or)
# Со скобками для ясности
result = True or (False and False)
print(f"True or (False and False) = {result}") # True
# 6. Значения, которые интерпретируются как False (Falsy values)
# False, None, 0, 0.0, "", [], {}, ()
print(f"bool(False): {bool(False)}") # False
print(f"bool(None): {bool(None)}") # False
print(f"bool(0): {bool(0)}") # False
print(f"bool(0.0): {bool(0.0)}") # False
print(f"bool(''): {bool('')}") # False (пустая строка)
print(f"bool([]): {bool([])}") # False (пустой список)
print(f"bool({{}}): {bool({})}") # False (пустой словарь)
# 7. Значения, которые интерпретируются как True (Truthy values)
# Все остальное
print(f"bool(True): {bool(True)}") # True
print(f"bool(1): {bool(1)}") # True
print(f"bool('text'): {bool('text')}") # True
print(f"bool([1,2,3]): {bool([1, 2, 3])}") # True
# 8. Использование в условиях
name = "Pavel"
# Короткая проверка на пустоту
if name:
print(f"Имя указано: {name}")
else:
print("Имя пустое")
# 9. Цепочки сравнений (уникальная особенность Python!)
age = 25
# Проверка, что возраст в диапазоне от 18 до 65
if 18 <= age <= 65:
print(f"Возраст {age} в допустимом диапазоне")
# Эквивалентно (но менее читаемо):
if age >= 18 and age <= 65:
print("Возраст в допустимом диапазоне")
# 10. Оператор is (проверка идентичности, а не равенства)
# is проверяет, ссылаются ли две переменные на ОДИН И ТОТ ЖЕ объект в памяти
a = [1, 2, 3]
b = [1, 2, 3]
c = a
print(f"a == b: {a == b}") # True (значения равны)
print(f"a is b: {a is b}") # False (разные объекты)
print(f"a is c: {a is c}") # True (тот же объект)
# Важно: для None всегда используем is, а не ==
value = None
if value is None:
print("Значение равно None")
# 11. Оператор in (проверка вхождения)
fruits = ["яблоко", "банан", "апельсин"]
print(f"'банан' in fruits: {'банан' in fruits}") # True
print(f"'груша' not in fruits: {'груша' not in fruits}") # True
text = "Python"
print(f"'Py' in text: {'Py' in text}") # True