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?

    • MinekPo1 [it/she]@lemmygrad.ml
      link
      fedilink
      arrow-up
      1
      ·
      2 hours ago

      one small gripe i have is that the repr¹ doesn’t handle aliases (ie items with more than one bit set) that well , but tbh its not an easy problem

      example to illustrate the problem :

      class Foo(enum.Flag):
          A = auto()
          B = auto()
          C = auto()
          # no D
          AB = 0b0011
          CD = 0b1100
      
      print(Foo.AB | Foo.C)  # <Foo.A|B|C: 7> NOT <Foo.AB|C: 7>
      print(Foo.CD | Foo.A)  # <Foo.A|C|CD: 13> NOT <Foo.A|CD: 7>
      

      its a minor thing but it annoys me a bit

      [1]: the _name_ member , which is used by __repr__ , of an enum member is actually generated either when the individual enum class is created or when the value is first needed by _missing_ . also the docs call these names surrounded by single underscores “sunder” names