this post was submitted on 09 Mar 2025
18 points (87.5% liked)

Python

6788 readers
42 users here now

Welcome to the Python community on the programming.dev Lemmy instance!

๐Ÿ“… Events

PastNovember 2023

October 2023

July 2023

August 2023

September 2023

๐Ÿ Python project:
๐Ÿ’“ Python Community:
โœจ Python Ecosystem:
๐ŸŒŒ Fediverse
Communities
Projects
Feeds

founded 2 years ago
MODERATORS
 

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?

you are viewing a single comment's thread
view the rest of the comments
[โ€“] yardy_sardley@lemmy.ca 7 points 1 day 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: