Questions and answers
A programmer writes a program and the program asks questions.
A computer executes the program and provides the answers. The program must be able to react according to the received answers.
Fortunately, computers know only two kind of answers:
You will never get a response like Let me think...., I don't know, or Probably yes, but I don't know for sure.
To ask questions, Python uses a set of very special operators. Let's go through them one after another, illustrating their effects on some simple examples.
Comparison: equality operator
Question: are two values equal?
To ask this question, you use the == (equal equal) operator.
Don't forget this important distinction:
It is a binary operator with left-sided binding. It needs two arguments and checks if they are equal.
Exercises
Now let's ask a few questions. Try to guess the answers.
Question #1: What is the result of the following comparison?
2 == 2
True - of course, 2 is equal to 2. Python will answer True (remember this pair of predefined literals, True and False - they're Python keywords, too).
Question #2: What is the result of the following comparison?
2 == 2.
The question is not as easy as the first one. Luckily, Python is able to convert the integer value into its real equivalent, and consequently, the answer is True.
Question #3: What is the result of the following comparison?
1 == 2
This should be easy. The answer will be(or rather, always is) False.
Equality: the equal to operator (==)
The == (equal to) operator compares the values of two operands. If they are equal, the result of the comparison is True. If they are not equal, the result of the comparison is False.
Look at the equality comparison below - what is the result of this operation?
var == 0
Note that we cannot find the answer if we do not know what value is currently stored in the variable var.
If the variable has been changed many times during the execution of your program, or its initial value is entered from the console, the answer to this question can be given only by Python and only at runtime.
Now imagine a programmer who suffers from insomnia, and has to count black and white sheep separately as long as there are exactly twice as many black sheep as white ones..
The question will be as follows:
black_sheep == 2 * white_sheep
Due to the low priority of the == operator, the question shall be treated as equivalent to this one:
black_sheep == (2 * white_sheep)
So, let's practice your understanding of the == operator now - can you guess the output of the code below?
var = 0 # Assigning 0 to var
print(var == 0)
var = 1 # Assigning 1 to var
print(var == 0)
True
False
Run the code and check if you were right.
Inequality: the not equal to operator (!=)
The != (not equal to) operator compares the values of two operands, too. Here is the difference: if they are equal, the result of the comparison is False. if they are not equal, the result of the comparison is True.
Now take a look at the inequality comparison below - can you guess the result of this operation?
var = 0 # Assigning 0 to var
print(var != 0)
var = 1 # Assigning 1 to var
print(var != 0)
Run the code and check if you were right.