Тип bool: явное и неявное приведение, правило истинности
less_04__bool_datatype_and_compare/theory_01__bool_explicit_and_implicit_type_conversion.md
Вводит тип bool с двумя значениями True/False и явное приведение через bool(). Центральная часть — универсальное правило truthy/falsy: пусто или ноль даёт False, всё остальное — True, со сводной таблицей по типам (int/float, NoneType, коллекции). Отдельно показано неявное приведение внутри if/while и дана рекомендация по именованию булевых переменных с префиксами is_/has_/can_/should_.
- bool(1), bool(0), bool("hi"), bool("") — явное приведение
- Таблица: что даёт False/True по типам данных
- Неявное приведение в if x: / while x:
- Именование: is_open, has_permission, can_delete, should_retry
Показать начало файла (73 строк всего)
### Логический тип в Python
* В Python логический тип называется **`bool`**.
* Он имеет всего два значения:
* `True` (истина)
* `False` (ложь)
```python
x = True
y = False
print(type(x)) # <class 'bool'>
```
---
### Явное приведение к `bool`
Для явного приведения используется встроенная функция `bool()`:
```python
print(bool(1)) # True
print(bool(0)) # False
print(bool("hi")) # True (непустая строка)
print(bool("")) # False (пустая строка
```
**УНИВЕРСАЛЬНОЕ ПРАВИЛО**:
* Всё, что НЕ ПУСТО и НЕ НОЛЬ превращается в `True`.
* Пустое, нулевое или специальное значение `None` → `False`.
| Тип данных | Значение, дающее `False` | Значение, дающее `True` |
|---------------------------------------| ------------------------ | ----------------------- |
| `int` / `float` | `0`, `0.0` | любое ненулевое число |
| `NoneType` | `None` | – (всегда False) |
| `str`, `list`, `tuple`, `set`, `dict` | пустая коллекция | непустая коллекция |
---
### Неявное приведение к `bool`
Неявное приведение происходит:
1. В **условных выражениях** (`if`, `while`).
2. При использовании логических операторов (`and`, `or`, `not`).
Примеры:
```python
x = 5
if x:
print("Значение True")
else:
print("Значение False")
```
---
…