Skip to main content

Section 22.3 Booleans and Logical Expressions

When writing a while loop, the logical expression can be anything that has a Boolean value. A Boolean, or bool is a value that is either True or False. Those are the only two Boolean values.
Much like how Python considers the string "12" to be a different type than the number 12, True is something different than the string "True"
We can see that Python considers a bool to be different than a string (str) or integer (int) by using the type function to ask about the values stored in x, y, and z in the program below:
The usual way to produce Boolean values is with a logical expression. Much how a numeric expression such as \(4 * (3 - 2)\) evaluates to a number, a logical expression evaluates to a logical or True/False value. Logical expressions are built with comparison operators that compare values to produce a True/False answer.
Comparison Operators
Table 22.3.1.
Expression Logical meaning
a < b True if a is less than b
a <= b True if a is less than or equal to b
a > b True if a is greater than b
a >= b True if a is greater than or equal to b
a == b True if a is equal to b. (Two equals signs, to distinguish it from assignment)
a != b True if a is not equal to b.
The best way to think about an expression like a > b is that it asks the question, “is a greater than b”. The value we get by evaluating the expression is the answer to that question: either True or False.
Here is a sample of them in use:
Something like isTwenty = age == 20 may look odd. But remember that = does not mean “equals” it is an assignment. Also, remember that the assignment always happens after all expressions are evaluated. A good translation for that line of code would be “isTwenty gets assigned the value that we get by evaluating ’is age equal to 20?’”
As the line of code runs, the first thing that happens is the evaluation of age == 20. Since age is 20, the result is True. That value replaces the logical expression and we end up with isTwenty = True and so that is the value that gets used for isTwenty.

Checkpoint 22.3.2.

    Given these values, which is the only logical expression that would evaluate to False?
    x = 30
    y = 2
  • x <= 50
  • 30 is less than or equal to 50
  • 10 > y
  • 10 is greater than 2
  • 30 > x
  • Correct. 30 is not greater than x, they are the same. So this is false.
  • y != 5
  • 2 is not equal to 5, so this is true
You have attempted of activities on this page.