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
    ·
    4 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