The conditions used in while
and if
statements above can
contain other operators besides comparisons.
The comparison operators in
and not in
check whether a value
occurs (does not occur) in a sequence. The operators is
and
is not
compare whether two objects are really the same object; this
only matters for mutable objects like lists. All comparison operators
have the same priority, which is lower than that of all numerical
operators.
Comparisons can be chained: e.g., a < b == c
tests whether a
is less than b
and moreover b
equals c
.
Comparisons may be combined by the Boolean operators and
and
or
, and the outcome of a comparison (or of any other Boolean
expression) may be negated with not
. These all have lower
priorities than comparison operators again; between them, not
has
the highest priority, and or
the lowest, so that
A and not B or C
is equivalent to (A and (not B)) or C
. Of
course, parentheses can be used to express the desired composition.
The Boolean operators and
and or
are so-called
shortcut operators: their arguments are evaluated from left to
right, and evaluation stops as soon as the outcome is determined.
E.g., if A
and C
are true but B
is false, A
and B and C
does not evaluate the expression C. In general, the
return value of a shortcut operator, when used as a general value and
not as a Boolean, is the last evaluated argument.
It is possible to assign the result of a comparison or other Boolean expression to a variable. For example,
>>> string1, string2, string3 = '', 'Trondheim', 'Hammer Dance' >>> non_null = string1 or string2 or string3 >>> non_null 'Trondheim' >>>Note that in Python, unlike C, assignment cannot occur inside expressions.