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?

  • Eggscellent@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    0
    ·
    14 hours ago

    Part of the problem is operator precedence - it’s ORing together the three numbers, then comparing that to “coin”.

    5 = 00101
    10= 01010
    25= 11001
        11111 = 31 
    

    It’s testing if coin equals 31.

    • milon@lemm.eeOP
      link
      fedilink
      arrow-up
      0
      ·
      edit-2
      14 hours ago

      Thank you for breaking it down.

      I’m just now sure when it is appropriate to use ‘|’. If bitwise operators can only be used with integers (and not floats), what’s an example where I can use it.