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 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?

  • Yardy Sardley
    link
    fedilink
    arrow-up
    7
    ·
    22 hours ago

    || is the logical OR in most languages I know of, but I’m pretty sure python only has the or keyword, no shorthand.

    Bitwise OR applies the logic to the individual bits in the underlying data. Think about how you would add two large numbers by hand. Write one number above the other and add at each position. Bitwise or is like that, except you OR the two bits in each position instead of adding them.

    In your example (you can do an OR with n inputs, the result is 1 if any input is 1):

    11001 25
    01010 10
    00101 5
    ----- OR
    11111 31

    So your code is actually being interpreted as if coin == 31: