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?
| is not equivalent to “or”. In bitwise operations the integer is converted into bits and the operation is done on a per-bit level. See: https://www.geeksforgeeks.org/python-bitwise-operators/
Eg.
1 | 2
is 3 where as1 or 3
is 1I did come across that link but didn’t quite understand it. If looking only at 25 | 10, does the code not run as expected because 25 is 5 digits long and 10 is 4 digits long? Is that what’s meant by “two equivalent length bit designs”?
Also, I can’t tell if 10 | 4 = 7 or 10 | 4 = 14.
0d10 = 0b1010 0d04 = 0b0100 1010 | 0100 ------ 1110 0b1110 = 0d14
Thank you. Not sure why in the link the arithmetic in green results in 7.
Exactly. OP is looking for a Boolean logical operator “or” and not the bitwise operator “|”.