Conditions#
Note
Source: Adapted from the C# edition (decisions/conditions.rst).
Chained comparisons and the truthiness discussion are Python-specific
features drawn from the SE4ML Python chapter
(chapter_python.rst, lines 872–905).
So far all our programs have executed instructions sequentially. But many problems require making a decision: do one thing if some condition is true, something else otherwise.
A condition is an expression whose value is either True or False.
These are Python’s Boolean values (named after 19th-century mathematician
George Boole), and their type is bool.
>>> 2 < 5
True
>>> 3 > 7
False
>>> x = 11
>>> x > 10
True
>>> 2 * x < x
False
Comparison Operators#
The basic comparison operators that produce Boolean results are:
Operator |
Meaning |
|---|---|
|
Equal to |
|
Not equal to |
|
Less than |
|
Greater than |
|
Less than or equal to |
|
Greater than or equal to |
Warning
Use == for comparison, = for assignment. Writing if x = 5:
is a SyntaxError in Python.
The bool Type#
True and False are built-in constants, not strings. You can also
create Boolean values with the bool() conversion function:
>>> bool(0)
False
>>> bool(1)
True
>>> bool("")
False
>>> bool("hello")
True
Any non-zero number and any non-empty sequence is truthy; zero, None,
and empty sequences are falsy. This matters in if statements.
Chained Comparisons#
Python allows comparisons to be chained — a convenience not in C#:
>>> x = 5
>>> 0 < x < 10
True
>>> 0 < x < 4
False
The expression 0 < x < 10 is equivalent to 0 < x and x < 10.
Chaining reads naturally and avoids repeating the middle variable.