Что такое bool в python
Перейти к содержимому

Что такое bool в python

  • автор:

Класс bool() в Python, логическое значение объекта

Позволяет проверить/узнать логическое значение объекта

Синтаксис:
bool(object) 
Параметры:
  • object — любой объект, как строка, список, число и т. д.
Возвращаемое значение:
  • bool — логическое значение указанного объекта.
Описание:

Класс bool() возвращает логическое значение указанного объекта, True или False

Объект всегда будет возвращать False , если:

  • Объект пуст — [] , () , <>
  • Объект — False
  • Объект равен 0
  • Объект — None

На практике редко вручную пользуются переменными типа bool , которые воспроизводятся логическими проверками, потому что логические результаты автоматически используются инструкциями if . else и другими средствами выбора.

Примеры проверки объекта на его логическое значение.

x = bool(10) print(x) # Вывод True x = bool(0) print(x) # Вывод False x = bool([0]) print(x) # Вывод True x = bool([]) print(x) # Вывод False 
  • ОБЗОРНАЯ СТРАНИЦА РАЗДЕЛА
  • Функция abs(), абсолютное значение числа
  • Функция all(), все элементы True
  • Функция any(), хотя бы один элемент True
  • Функция ascii(), преобразует строку в ASCII
  • Функция bin(), число в двоичную строку
  • Класс bool(), логическое значение объекта
  • Функция breakpoint(), отладчик кода
  • Класс bytearray(), преобразует в массив байтов
  • Класс bytes(), преобразует в строку байтов
  • Функция callable(), проверяет можно ли вызвать объект
  • Функция chr(), число в символ Юникода
  • Класс classmethod, делает функцию методом класса
  • Функция compile() компилирует блок кода Python
  • Класс complex(), преобразует в комплексное число
  • Функция delattr(), удаляет атрибут объекта
  • Класс dict() создает словарь
  • Функция dir(), все атрибуты объекта
  • Функция divmod(), делит числа с остатком
  • Функция enumerate(), счетчик элементов последовательности
  • Функция eval(), выполняет строку-выражение с кодом
  • Функция exec(), выполняет блок кода
  • Функция filter(), фильтрует список по условию
  • Класс float(), преобразует в вещественное число
  • Функция format(), форматирует значение переменной
  • Класс frozenset(), преобразует в неизменяемое множество
  • Функция getattr(), значение атрибута по имени
  • Функция globals(), переменные глобальной области
  • Функция hasattr(), наличие атрибута объекта
  • Функция hash(), хэш-значение объекта
  • Функция help(), справка по любому объекту
  • Функция hex(), число в шестнадцатеричную строку
  • Функция id(), идентификатор объекта
  • Функция input(), ввод данных с клавиатуры
  • Класс int(), преобразует в тип int
  • Функция isinstance(), принадлежность экземпляра к классу
  • Функция issubclass(), проверяет наследование класса
  • Функция iter(), создает итератор
  • Функция len(), количество элементов объекта
  • Класс list(), преобразовывает в список
  • Функция locals(), переменные локальной области
  • Функция map(), обработка последовательности без цикла
  • Функция max(), максимальное значение элемента
  • Класс memoryview(), ссылка на буфер обмена
  • Функция min(), минимальное значение элемента
  • Функция next(), следующий элемент итератора
  • Класс object(), возвращает безликий объект
  • Функция oct(), число в восьмеричную строку
  • Функция open(), открывает файл на чтение/запись
  • Функция ord(), число символа Unicode
  • Функция pow(), возводит число в степень
  • Функция print(), печатает объект
  • Класс property(), метод класса как свойство
  • Класс range(), генерирует арифметические последовательности
  • Функция repr(), описание объекта
  • Функция reversed(), разворачивает последовательность
  • Функция round(), округляет число
  • Класс set(), создает или преобразовывает в множество
  • Функция setattr(), создает атрибут объекта
  • Класс slice(), шаблон среза
  • Функция sorted(), выполняет сортировку
  • Декоратор staticmethod(), метод класса в статический метод
  • Класс str(), преобразует объект в строку
  • Функция sum(), сумма последовательности
  • Функция super(), доступ к унаследованным методам
  • Класс tuple(), создает или преобразует в кортеж
  • Класс type(), возвращает тип объекта
  • Функция vars(), словарь переменных объекта
  • Функция zip(), объединить элементы в список кортежей
  • Функция __import__(), находит и импортирует модуль
  • Функция aiter(), создает асинхронный итератор
  • Функция anext(), следующий элемент асинхронного итератора

bool

Логический тип представлен двумя постоянными значениями False и True . Значения используются для представления истинности.

 my_bool_true = True 
my_bool_true = bool(10)
my_bool_true = bool('some')

my_bool_false = False
my_bool_false = bool(0)
my_bool_false = bool('')
my_bool_false = bool()

Тип bool не позволяет наследоваться. Его единственные экземпляры — False и True .

Если рассматривать эти значения в числовом контексте (например, когда они используются как аргументы в арифметической операции), то ведут они себя как целые 0 и 1 соответственно.

На заметку
Данный тип является подтипом целого (int).

 isinstance(True, int) # True 
isinstance(False, int) # True

issubclass(bool, int) # True

Конструктор типа bool(x) может использоваться для приведения любого значения к логическому типу (если, конечно, это значение можно интерпретировать как логический тип). Если аргумент *x* ложь, или опущен вернётся False .

На заметку

Для пользовательского объекта реализовать поведение при проверке на его истинность можно в методе __bool__.

Типы bool и NoneType в Python

Python :: Учебник для начинающих

  • Тип bool в Python
  • Логические операторы в Python
  • Тип NoneType в Python
  • Вопросы и задания для самоконтроля

Тип bool в Python

В Python , как и в других языках программирования, тип данных bool (т.е. логический тип данных) выражает истинность или ложность и состоит, соответст­венно, всего из двух предопределенных объектов True и False. Логические константы обычно являются результатом операций сравнения, особенно в выражениях управляющих конструкций, где они определяют ход дальнейших действий программы (см. пример №1 ).

Код Результат pythonCodes

# Сравним дроби. n_1 = 155/247 n_2 = 189/289 # Если рез-том сравнения будет True. if (n_1 > n_2) == True: print('155/247 > 189/289') # Если рез-т не равен False. elif (n_1 == n_2) != False: print('155/247 = 189/289') # Иначе. else: print('155/247 < 189/289')
155/247 < 189/289 

Пример №1. Логический тип данных в Python (часть 1).

Обратите внимание, что в Python имена булевых констант True и False являются регистрозависимыми, поэтому использовать их нужно именно в указанном здесь регистре.

Стоит добавить, что True и False по сути являются обычными целыми числами 1 и 0 , пусть и с некоторыми особенностями отображения на экране (см. пример №2 ).

Код Результат pythonCodes

# Вычислим и выведем рез-ты выражений. res_1 = 1 + 2 + 3*0 print('1 + 2 + 3*0 =', res_1) res_2 = True + 2 + 3*False print('True + 2 + 3*False =', res_2, end='\n\n') # Сравним числа и константы. res_3 = (1 == True) print('(1 == True) ->', res_3) res_4 = (0 == False) print('(0 == False) ->', res_4, end='\n\n') # Но тип выделен отдельно. print('type(1) ->', type(1)) print('type(True) ->', type(True), end='\n\n') print('type(0) ->', type(0)) print('type(False) ->', type(False))
1 + 2 + 3*0 = 3 True + 2 + 3*False = 3 (1 == True) -> True (0 == False) -> True type(1) -> type(True) -> type(0) -> type(False) ->

Пример №2. Логический тип данных в Python (часть 2).

Как видим, булевы константы действительно можно использовать в математических выражениях на равных с числами. Точно также и в операциях сравнения можно использовать вместо констант True и False числа 1 и 0 (попробуйте заменить константы числами в первом примере). Поэтому для себя их можно считать просто именованными «ноликами» и «единичками» не забывая при этом, что мы имеем дело с отдельным типом данных.

Логические операторы в Python

Python поддерживает следующие стандартные логические операторы: and (логическое И), or (логическое ИЛИ), not (логическое НЕ). Все они используются в логических выражениях для определения того или иного хода выполнения программы в зависимости от возвращаемого выражением результата (см. таблицу №3 ).

Пример Название Результат
not x Логическое НЕ True, если значение x равно False.
x and y Логическое И True, если оба значения x и y равны True.
x or y Логическое ИЛИ True, если оба значения равны True или хотя бы одно из значений x или y равно True.

Таблица №3. Логические операторы Python.

Важно понимать, как интерпретатор обрабатывает логические выражения в общем случае. Если в выражении x or y результат вычисления операнда x будет интерпретироваться как True или в выражении x and y результат вычисления этого операнда будет интерпретироваться как False , то правый операнд, т.е. операнд y , уже вычисляться не будет. Вместо этого будет просто возвращен результат вычисления левого операнда x . В противном случае, когда в выражении x or y результат вычисления левого операнда будет интерпретироваться как False или в выражении x and y результат вычисления этого операнда будет интерпретироваться как True , интерпретатор вернет результат вычисления правого операнда, т.е. операнда y . Именно поэтому инструкции print(5 or 0) и print(0 or 5) выведут '5' , а print(0 and 5) и print(5 and 0) , выведут '0' .

Следует быть внимательным и не помещать в правый операнд код, от которого может зависеть правильная работа программы (см. пример №4 ).

Код Результат pythonCodes

# Создаем пустой список. li = [] # Определяем польз. функцию. def my_func(x): li.append(x) # Просим вычислить выражение. True or my_func(5) # Выведет [], т.к. my_func не вызывалась. print(li) # Просим вычислить выражение. False or my_func(5) # Выведет [5], т.к. вызов my_func(5) был. print(li) 

Пример №4. Особенности использования логических операторов.

Тип NoneType в Python

Специальная константа None, означающая отсутствие значения, является в Python единственным представителем типа данных NoneType . Обычно ее используют для инициализации переменных и объектов, которым значения потребуется присвоить позже. Кроме того, None неявно возвращается функциями, у которых отсутствует оператор return (см. пример №5 ).

Код Результат pythonCodes

# Инициализируем переменную. n = None # Напишем функцию. def my_func(n): # Выведет NoneType. print('type(n) ->', type(n)) # Вызываем ф-цию, а рез-т вызова сохраняем. res = my_func(n) # None, т.к. оператор return в ф-ции отсутствует. print('my_func(n) ->', res)
type(n) -> my_func(n) -> None 

Пример №5. Тип NoneType в Python.

Опять же, как и в случае с логическими константами, имя None чуствительно к регистру символов, поэтому использовать его нужно именно в указанном здесь виде.

Что касается проверки переменной на значение None , то сделать это надежнее всего при помощи известного нам оператора is . Например, для инструкции n = None проверка n is None вернет True .

Помогите проекту, подпишитесь!

Подписка на учебные материалы сайта оформляется сроком на один год и стоит около 15 у.е. 5 у.е. После подписки вам станут доступны следующие возможности.

  • Доступ ко всем ответам тестов и решениям задач.
  • Возможность загрузки учебных кодов и программ на свой компьютер. Доступ ко всем видеоурокам.
  • Практически полное отключение рекламы.
  • Возможность внести свой скромный вклад в развитие проекта и мира во всем мире, а также выразить свою благодарить автору за его труд. Нам очень нужна ваша поддержка!

Python для начинающих

На страницу подписки

Вопросы и задания для самоконтроля

1. Выберите верные варианты написания имен: NONE , True , false , None , true , False . Объясните свой ответ. Показать решение.

Ответ. В Питоне имена переменных и констант регистрозависимы и должны использо­ваться в следующем виде: True , False , None .

2. Установите соответствия между константами None , True , False и утверж­де­ниями «Истина», «Ложь», «Нет значения». Показать решение.

Ответ. True ⇨ «Истина», False ⇨ «Ложь», None ⇨ «Нет значения».

3. Посчитайте устно, а затем проверьте себя программно: 3 + False , True*5 + False , 7 - False*5 . Показать решение.

Решение Результат pythonCodes

# Вычислим и выведем рез-ты выражений. res_1 = 3 + False print('3 + False =', res_1, end='\n\n') res_2 = True*5 + False print('True*5 + False =', res_2, end='\n\n') res_3 = 7 - False*5 print('7 - False*5 =', res_3)
3 + False = 3 True*5 + False = 5 7 - False*5 = 7 

4. Какой результат вернут выражения: 5 < 7 , 5 >7 , 5

5. Будет ли осуществлен вызов функций в следующих примерах: False and foo() , not True or foo() , 1 and foo() ? Показать решение.

Ответ. Вызов функций будет осуществлен во втором и третьем примерах, т.к. после обработки левой части условий конечный результат вычислений еще будет неопределенным. В ответе мы учли, что во втором примере not True == False , а в третьем примере 1 == True .

6. Укажите верный результат выполнения кода print(10 and 20) : 10 and 20 , 10 , 20 , 1 , True . Показать решение.

Ответ. Верным ответом будет 20 , т.к. согласно документации в ходе вычисления выражения x and y интерпретатор сперва вычисляет левый операнд x , возвращая результат вычислений, если он интерпретируется как False . Если же результат будет интерпретироваться как True , интерпретатор вернет результат вычисления правого операнда y . Например, print(10*0 and 20) выведет 0 , print([] and 20) выведет [] , print(False and 20) выведет False , print(True and 20) выведет 20 , print([10*0] and 20) выведет 20 , print([10*5] and 20*3) выведет 60 .

7. Дополнительные тесты по теме расположены в разделе «Логический тип» нашего сборника тестов.

8. Дополнительные упражнения и задачи по теме расположены в разделе «Логические выражения» нашего сборника задач и упражнений.

Быстрый переход к другим страницам

  • Множества в Python
  • Типы bool и NoneType в Python
  • Приведение типов в Python
  • Вернуться к оглавлению учебника

Ok, Python!

okpython.net Copyright © 2022-2023.

Д. П. Кириенко. Программирование на языке Python (школа 179 г. Москвы)

Операторы сравнения возвращают значения специального логического типа bool . Значения логического типа могут принимать одно из двух значений: True (истина) или False (ложь). Если преобразовать логическое True к типу int , то получится 1, а преобразование False даст 0. При обратном преобразовании число 0 преобразуется в False , а любое ненулевое число в True . При преобразовании str в bool пустая строка преобразовывается в False , а любая непустая строка в True .

Логические операторы

Иногда нужно проверить одновременно не одно, а несколько условий. Например, проверить, является ли данное число четным можно при помощи условия (n % 2 == 0) (остаток от деления n на 2 равен 0 ), а если необходимо проверить, что два данных целых числа n и m являются четными, необходимо проверить справедливость обоих условий: n % 2 == 0 и m % 2 == 0 , для чего их необходимо объединить при помощи оператора and (логическое И): n % 2 == 0 and m % 2 == 0 .

В Питоне существуют стандартные логические операторы: логическое И, логическое ИЛИ, логическое отрицание.

является бинарным оператором (то есть оператором с двумя операндами: левым и правым) и имеет вид and . Оператор and возвращает True тогда и только тогда, когда оба его операнда имеют значение True .

является бинарным оператором и возвращает True тогда и только тогда, когда хотя бы один операнд равен True . Оператор “логическое ИЛИ” имеет вид or .

(отрицание) является унарным (то есть с одним операндом) оператором и имеет вид not , за которым следует единственный операнд. Логическое НЕ возвращает True , если операнд равен False и наоборот.

Пример. Проверим, что хотя бы одно из чисел a или b оканчивается на 0:

if a % 10 == 0 or b % 10 == 0:

Проверим, что число a — положительное, а b — неотрицательное:

if a > 0 and not (b < 0):

Или можно вместо not (b < 0) записать (b >= 0) .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *