Introduction to Booleans#
Booleans#
As we stated in 1.1 Basics of Numbers and Variables, programs do their work with data. Here we will be introducing a new type of data: Booleans. Booleans are a type of data that is essentially yes/no (whether a box is checked). A boolean is either True or False, there are only two possible values. They’re named after George Boole.
At a Python prompt (after the >>> in IDLE or at a terminal after running python), try typing a boolean and pressing enter. Here’s what you should expect to see:
>>> True
True
>>> False
False
Boolean Expressions#
Boolean expressions are expressions that evaluate to a boolean value, either True or False. There are many operators that allow us to evaluate boolean expressions, in two broad categories: comparisons and logical operators.
Comparisons 1: Inequalities#
The first relational operators we’ll meet are the inequalities, written < (for less than), <= (for less-than-or-equal-to, i.e., ≤), > (for greater than) and >= (for greater-than-or-equal-to, i.e., ≥). These are all written in the conventional way and with the conventional numerical meaning. They return True when the inequality holds and False when it doesn’t.
>>> 8 > 7
True
>>> 7 > 8
False
>>> 8 >= 8
True
>>> 10 <= 17
True
Comparisons 2: Equalities#
To test for equality, we use ==. We’ve already encountered the = sign elsewhere: it’s used for variable assignment. Confusing the two is an extremely common mistake, even for experienced programmers.
>>> 10 == 10
True
>>> 10 == 9
False
>>> x = 10 # THIS IS AN ASSIGNMENT, NOT A COMPARISON!!!!
>>> x == 9
False
>>> x == 10
True
True if the values are equal, False otherwise
>>> 10 == 10
True
>>> 10 == 9
False
>>> x = 10
>>> x == 9
False
>>> x == 10
True
Comparisons 3: Anti-Equalities#
The != operator means “not equal to”, i.e., the ≠ operator from mathematics. It returns
The != operator means “not equal to”, i.e., the ≠ operator from mathematics. It returns True if the values are not equal, and False otherwise.
>>> 10 != 10
False
>>> 10 != 9
True
Logical Operators#
There are three common logical operators in programming: and a/k/a conjunction, or a/k/a disjunction, and not a/k/a negation.
The and operator returns True if both of its arguments are True.
>>> True and True
True
>>> False and True
False
>>> True and False
False
>>> False and False
False
The or operator returns True if either or both expressions evaluate to True, and returns False otherwise.
>>> True or True
True
>>> True or False
True
>>> False or True
True
>>> False or False
False
Finally, the not operator invers its Boolean argument.
>>> not True
False
>>> not False
True