3.1.1.2 Равенство: оператор равенства ==
Оператор == (равно) сравнивает значения двух операндов. Если они равны, результат сравнения - True. Если они не равны, результатом сравнения будет False.
Посмотрите на сравнение равенства ниже - каков результат этой операции?
var == 0
NameError: name 'var' is not defined
Обратите внимание, что мы не сможем найти ответ, если не знаем, какое значение в настоящее время хранится в переменной var.
Если переменная менялась много раз во время выполнения вашей программы или ее начальное значение вводится с консоли, ответ на этот вопрос может дать только Python и только во время выполнения.
А теперь представьте программиста, который страдает бессонницей и должен отдельно считать черных и белых овец, если белых овец ровно в два раза больше.
Вопрос будет в следующем:
black_sheep == 2 * white_sheep
NameError: name 'black_sheep' is not defined
Из-за низкого приоритета оператора == вопрос должен рассматриваться как эквивалентный этому:
black_sheep == (2 * white_sheep)
NameError: name 'black_sheep' is not defined
Итак, давайте попрактикуемся в понимании оператора == , можете ли вы угадать вывод кода ниже?
var = 0 # Assigning 0 to var
print(var == 0)
Output: True
var = 1 # Assigning 1 to var
print(var == 0)
Output: False
Неравенство: оператор не равно (! =)
Оператор ! = ( не равно ) также сравнивает значения двух операндов. В этом разница:
var = 0 # Assigning 0 to var
print(var != 0)
Output: False
var = 1 # Assigning 1 to var
print(var != 0)
Output: True
Посмотрите на сравнение равенства ниже - каков результат этой операции?
var == 0
NameError: name 'var' is not defined
Обратите внимание, что мы не сможем найти ответ, если не знаем, какое значение в настоящее время хранится в переменной var.
Если переменная менялась много раз во время выполнения вашей программы или ее начальное значение вводится с консоли, ответ на этот вопрос может дать только Python и только во время выполнения.
А теперь представьте программиста, который страдает бессонницей и должен отдельно считать черных и белых овец, если белых овец ровно в два раза больше.
Вопрос будет в следующем:
black_sheep == 2 * white_sheep
NameError: name 'black_sheep' is not defined
Из-за низкого приоритета оператора == вопрос должен рассматриваться как эквивалентный этому:
black_sheep == (2 * white_sheep)
NameError: name 'black_sheep' is not defined
Итак, давайте попрактикуемся в понимании оператора == , можете ли вы угадать вывод кода ниже?
var = 0 # Assigning 0 to var
print(var == 0)
Output: True
var = 1 # Assigning 1 to var
print(var == 0)
Output: False
Неравенство: оператор не равно (! =)
Оператор ! = ( не равно ) также сравнивает значения двух операндов. В этом разница:
- если они равны, результат сравнения - False
- если они не равны, результат сравнения - True
var = 0 # Assigning 0 to var
print(var != 0)
Output: False
var = 1 # Assigning 1 to var
print(var != 0)
Output: True