if coin == 25 | 10 | 5:
If I replace the ‘|’ with ‘or’ the code runs just fine. I’m not sure why I can’t use ‘|’ in the same statement.
Doing the following doesn’t work either:
if if coin == 25 | coin == 10 | coin == 5:
I know bitwise operators can only be used with integers, but other then that is there another difference from logical operators?
Aside from operations on bitfields, a bitwise operator can be useful in several “non bits” cases. For instance:
value & 1
evaluates to 1 ifvalue
is odd (and will evaluate to True in anif
statement)value >> 1
dividesvalue
by 2 (integer division)But usually bitwise operators is for when you want to manipulate bits in values. For instance:
value | 5
returnsvalue
with bits 1 and 3 set to Truevalue & 0xffff
returns the 16 least-significant bits invalue
(usually you do this to make sure it will fit in 2 bytes in memory for example)value & (0xffff ^ 5)
returns the lower 16 bits ofvalue
with bits 1 and 3 set to FalseEtc.
Thank you for the reply. It seems bitwise operators are somewhat of an advanced concept that I may revisit down the road.
honestly yes you’re probably not going to use them a lot, if at all, especially in python
You might use them with sets:
a = {1, 2, 3} b = {2, 3, 4} a | b # {1, 2, 3, 4} a & b # {2, 3} a ^ b # {1, 4} a - b # {1} b - a # {4}
They’re quite simple. Just convert the values to binary and apply the applicable truth tables. Just remember operator precedence when you use them, and in doubt, don’t trust your luck and apply parentheses generously 🙂