Логический тип bool и оператор равенства в Python

Обновлено:

1. Класс bool

В Python существует встроенный класс:

bool

У этого класса есть два логических объекта:

True
False

True переводится как:

  • правда;
  • верно;
  • да.

False переводится как:

  • ложь;
  • неверно;
  • нет.

Названия обязательно записываются с большой буквы:

True
False

2. Проверка типа

type(True)

Результат:

<class 'bool'>
type(False)

Результат:

<class 'bool'>

Оба объекта относятся к классу bool.

Иногда True можно условно воспринимать как 1, а False — как 0, но в программе они прежде всего обозначают результат логической проверки.


3. Оператор равенства ==

Оператор:

==

проверяет, равны ли два объекта.

Если объекты равны, результатом будет:

True

Если объекты не равны:

False

Пример:

25 == 25

Результат:

True
25 == 24

Результат:

False

4. Сравнение int и float

Целые и вещественные числа можно сравнивать между собой:

5 == 5.0

Результат:

True

Значения чисел одинаковые, несмотря на разные типы данных.

5 == 5.001

Результат:

False

Значения отличаются.

Ещё примеры:

10.0 == 10

Результат:

True
10.5 == 10

Результат:

False

5. Сравнение строк

Две полностью одинаковые строки равны:

'Python' == 'Python'

Результат:

True

Если строки отличаются, результатом будет False.

'Python' == 'python'

Результат:

False

Регистр букв имеет значение.


6. Порядок символов

'ABC' == 'ABC'

Результат:

True
'ABC' == 'CBA'

Результат:

False

Символы одинаковые, но расположены в разном порядке.


7. Буквы разных языков

Некоторые буквы разных алфавитов могут выглядеть одинаково.

Например, русская:

А

и английская:

A

выглядят похоже, но являются разными символами.

'А' == 'A'

Результат:

False

В первой строке находится русская буква, а во второй — английская.


8. Пробел является символом

Пустые строки равны:

'' == ''

Результат:

True

Строки с одним пробелом тоже равны:

' ' == ' '

Результат:

True

Но один пробел не равен двум:

' ' == '  '

Результат:

False

Также имеют значение пробелы в начале и в конце:

'Python' == 'Python '

Результат:

False

Чтобы строки были равны, должны совпадать:

  • все символы;
  • их количество;
  • регистр;
  • порядок;
  • пробелы.

9. Присваивание и сравнение

Один знак равенства:

=

используется для присваивания.

number = 25

Имя number начинает ссылаться на число 25.

Два знака равенства:

==

используются для сравнения.

number == 25

Результат:

True

Сравним:

number = 25
result = number == 25

print(result)

Результат:

True

10. Сохранение результата сравнения

Результат сравнения является объектом класса bool.

Его можно сохранить в переменную:

result = 25 == 25

В переменной находится:

True

Проверим:

print(result)
print(type(result))

Результат:

True
<class 'bool'>

Другой пример:

result = 'Python' == 'python'

print(result)

Результат:

False

11. Несколько сравнений подряд

В Python можно сравнить несколько значений:

25 == 25 == 25 == 25

Результат:

True

Python проверяет соседние значения:

25 равно 25
25 равно 25
25 равно 25

Все проверки дали True, поэтому общий результат тоже True.

Если хотя бы одно значение отличается:

25 == 25 == 24 == 25

Результат:

False

12. Основные правила

Класс логических значений:

bool

Его объекты:

True
False

Проверка равенства:

==

Присваивание:

=

Пример присваивания:

number = 25

Пример сравнения:

number == 25

Результат операции == всегда относится к классу bool:

True

или:

False

Домашнее задание

Задание 1

Сначала самостоятельно определить результаты, затем проверить их в IDLE:

25 == 25
25 == 24
5 == 5.0
5 == 5.001
10.5 == 10.5

Задание 2

Определить результаты сравнений:

'Python' == 'Python'
'Python' == 'python'
'ABC' == 'CBA'
'' == ''
' ' == '  '
'Hello' == 'Hello '
'А' == 'A'

Объяснить причину каждого результата False.


Задание 3

Создать переменные:

first_number = 100
second_number = 100.0
first_text = '100'
second_text = '100'

Сохранить в отдельные переменные результаты сравнений:

first_number == second_number
first_text == second_text
first_number == first_text
100 == 100 == 100
100 == 100 == 99

Вывести каждый результат и проверить его тип с помощью type().