Booleans
The type sp.bool
has two literals: True
and False
The expression a and b
is True
if and only if both a
and b
are True
. The expression a or b
is True
if and only if at least one of a
and b
is True
. The expression a ^ b
is True
if and only if exactly one of a
and b
is True
.
Note that and
and or
do "short-circuiting": for a or b
, if a == True
then b
is not evaluated. For a and b
, if a == False
then b
is not evaluated.
For example, this statement runs successfully:
smartpy
assert True or 1 / 0 == 42
On the other hand the following statement raises a division-by-zero error:
smartpy
assert 1 / 0 == 42 or True
Note that these operations work on booleans only. For bitwise operations on integers, see bitwise arithmetic.