Boolean logic & truth tables
Handout
This page needs a recent browser (with SharedArrayBuffer support). Please update Chrome, Edge, Firefox or Safari to the latest version.
Boolean values
- A Boolean value is either
TrueorFalse. - A condition such as
age >= 18produces a Boolean. - Computers build everything from these two values.
AND, OR, NOT
andis True only when both sides are True.oris True when at least one side is True.notflips True to False, and False to True.
print(True and False) # False
print(True or False) # True
print(not True) # False
A truth table
- A truth table lists every possible input and its output.
- Two inputs (A, B) give four rows: 00, 01, 10, 11.
Explore
Truth table — try every input
and is true only when both are true; or when at least one is.
Build a truth table with loops
- A nested loop over
False, Truewalks through all the combinations.
for a in [False, True]:
for b in [False, True]:
print(a, b, a and b)
More gates: NAND, NOR, XOR
- NAND is
not (a and b); NOR isnot (a or b). - XOR is True when the inputs are different:
a != b.
In the exam: logic gates
- Know the gates NOT, AND, OR, NAND, NOR, XOR and their truth tables.
X ← A AND B
Y ← NOT (A OR B)
Common mistakes
ANDis true only when both inputs are true;ORis true when at least one is.NOTflips the value.- A truth table lists every combination of the inputs.
Now you try
- Each function returns the gate's Boolean output.
- Press Check answer to test your code.
Write AND_gate(a, b) that returns True only when both inputs are True.
Click Run to see the output here.
Write XOR_gate(a, b) that returns True when the two inputs are different, and False when they are the same.
Click Run to see the output here.
Write NAND_gate(a, b) that gives the opposite of AND: True unless both inputs are True. Use not (a and b).
Click Run to see the output here.