bool

Функция bool() преобразует значение в логическое (True или False) в соответствии с правилами приведения типов в Python.

Синтаксис

bool([x])

Аргументы

  • x (необязательный):
    • Что означает: Значение, которое нужно преобразовать в логическое.
    • Возможные значения: Любой объект или значение в Python.

Возвращаемое значение

Возвращает True, если аргумент x является истинным (не None, не False, не 0 и т. д.). Возвращает False, если аргумент x является ложным.

Если аргумент не указан, функция возвращает False.

Примеры использования

print(bool(1))  # Вывод: True
print(bool(0))  # Вывод: False
print(bool("Hello"))  # Вывод: True
print(bool(""))  # Вывод: False
print(bool(True))  # Вывод: True
print(bool([]))  # Вывод: False (пустой список считается ложным)

print(bool([1, 2, 3]))  # Вывод: True (непустой список считается истинным)

Эквивалентный код

def pyplanet_bool(x=None):
    if x:
        return True
    return False

Частые ошибки

  1. Ожидание логического значения от сложного объекта:

    print(bool([0]))  # Вывод: True
    

    Даже если объект содержит ложное значение, сам объект (например, список) считается истинным, если он не пуст.

    Как исправить: Проверьте элементы объекта явно:

    print(all(x == 0 for x in [0]))  # Проверяем содержимое списка.
    
  2. Неявное преобразование типов:

    value = bool("False")
    print(value)  # Вывод: True (непустая строка — истинная)
    

    Как исправить: Обратите внимание на значения, передаваемые в bool.

Часто задаваемые вопросы

  1. Что произойдет, если аргумент не передан? Функция вернет False.

  2. Какие значения считаются ложными? Ложными считаются:

    • None
    • False
    • Числа: 0, 0.0, 0j
    • Пустые контейнеры: [], (), {}, set()
    • Пустые строки: ""
    • Пользовательские объекты с методом __bool__, возвращающим False, или с методом __len__, возвращающим 0.
  3. Можно ли использовать bool() для проверки, пустой ли контейнер? Да, например:

    items = []
    if not bool(items):
        print("Контейнер пуст.")
    

    Однако более предпочтительна более короткая форма записи:

    if not items:
        print("Контейнер пуст.")