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?

  • Pup Biru
    link
    fedilink
    English
    arrow-up
    1
    ·
    edit-2
    6 hours ago

    python in general tends toward readability over performance optimisation… you’re right they’re an advanced concept, and i’d say if you ever use bitwise operators in python they should be wrapped in some descriptive and very minimal function: treat it like a black box, because the next person that comes along likely won’t understand what’s happening without a pretty good description

    a bit field is just not a descriptive data structure, so manipulate it directly as little as possible

    i’d also say that most peoples use of bitwise operators is when unpacking external data formats (network traffic, operating system primitives, files formats, etc) and they’re usually wrapped in data structures that make those things more pythonic

    unless you know you need bitwise operators, you probably don’t need bitwise operators