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 == 42On the other hand, the following statement raises a division-by-zero error:
smartpy
assert 1 / 0 == 42 or TrueNote that these operations work on booleans only. For bitwise operations on integers, see bitwise arithmetic.