6.3. Boolean Expressions

A boolean expression makes a comparison and returns one of the boolean values, either True or False.

To make a decision within our code, a boolean expression is used as the condition. A condition is a comparison that can be called correct (True) or incorrect (False).

6.3.1. Testing for Equality

The equality operator, ==, compares two values and returns True or False depending on whether the values are identical.

Example

1
2
3
4
5
6
num = 37
other_num = 40

print(5 == 5)
print('abc' == 'def')
print(num == other_num - 3)

Console Output

True
False
True

In line 4, the two values are equal, so the expression evaluates to True. In the line 5, the string abc is not equal to def, so we get False. Line 7 compares the result of other_num - 3 with the value stored in num.

Tip

A common error is using a single equals sign (=) instead of a double equals (==) when comparing two values. We call = an assignment operator, but == is a comparison operator.

  1. To set the value of a variable, use = (e.g. name = 'Mae').
  2. To compare values, use == (e.g. name == other_name).

An equality test is symmetric, meaning that we can switch the places of the two values and get the same the result. If num == 7 is True, then 7 == num is also True. However, an assignment statement is NOT symmetric: num = 7 works while 7 = num does not.

Try It!

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
# Run the code as-is first.
name = 'Cynthia'
other_name = 'Rose'

print(name, other_name, name == other_name)

name = other_name

print(name, other_name)

# Replace the assignment statement on line 7 with other_name = name.
# Does the output change?

# Does name = other_name behave the same way as other_name = name?
# What happens when you try print(name = other_name)?

6.3.2. Other Comparisons

The == operator is one of seven common comparison operators.

Note

Remember: The values on either side of an operator are called operands.

Comparison Operators
Operator Description Examples Returning True Examples Returning False
Equal (==) Returns True if two compared values (operands) are equal, and False otherwise.

7 == 3 + 4

'ab' == 'a'+'b'

"dog" == "dog"

7 == 5

'dog' == 'cat'

'cat' == 'Cat'

Not equal (!=) Returns True if two values (operands) are NOT equal, and False otherwise.

7 != 5

"dog" != "cat"

7 != 7

"dog" != "dog"

Greater than (>) Returns True if the left-hand value (operand) is greater than the right-hand operand, and False otherwise.

7 > 5

'b' > 'a'

7 > 7

'a' > 'b'

Less than (<) Returns True if the left-hand operand is less than the right-hand operand, and False otherwise.

5 < 7

'a' < 'b'

15 < 15

'b' < 'a'

Greater than or equal (>=) Returns True if the left-hand operand is greater than or equal to the right-hand operand, and False otherwise.

7 >= 5

7 >= 7

'b' >= 'a'

'b' >= 'b'

5 >= 7

'a' >= 'b'

Less than or equal (<=) Returns True if the left-hand value is less than or equal to the right-hand value, and False otherwise.

5 <= 7

5 <= 5

'a' <= 'b'

'a' <= 'a'

7 <= 5

'b' <= 'a'

in Returns True if the left-hand value is found inside the right-hand value, and False otherwise. This operator does NOT work for the int or float data types.

'a' in 'Happy'

'stop' in 'unstoppable'

'A' in 'apple' (case matters)

'oy' in 'you' (order matters)

6.3.3. Check Your Understanding

Question

Which of the following are boolean expressions? Select ALL that apply.

  1. 3 <= 4
  2. 3 + 4
  3. "DogCat" == "dog" + "cat"
  4. "False"
  5. text = 'Rutabagas!'