What is difference between bitwise AND(&) and Boolean AND(and)?, Bitwise OR() and Boolean OR(or)? and so on…
Many modern programming languages have two operators for “or” and two for “and”  described as “bitwise” and “logical” operators. And you need to choose the right one in the right circumstances … otherwise your code won’t behave quite as you expect. For all normal programming cases, a normal programmer mostly requires the logical operators to work with.
Bitwise OR takes the internal bit pattern of the two expressions/variables passed into it, and combines them bit by bit, setting a true (1) bit on the output if either of the incoming bits in the corresponding position is true. For example  illustrated with integers (16bit):
0000000000010111
is 23 in binary (internal) format
0000000001000011
is 67 in binary (internal) format
Bitwise “or” gives
0000000001010111
which is 87 in binary (internal) format
In Python:
a = 2367
print(a) # Result: 87
Logical OR looks at each of the two incoming expressions/variables as a whole, and if either of them evaluates to True
, it returns a True
result. But if both of the incoming expressions/variables evaluate to False
, then False
is returned.
In Python:
a = 5
b = 0
print(a>0 or b<0) # Result: True, since first condition is True
99 times in 100, you’ll want to use the logical OR rather than the bitwise OR in your code. “If the temperature is under 0 degrees OR if it is snowing” is a logical decision, for example  and most code requirements that combine conditions are comparisons like that.
There is a similar differentiation bitwise AND and logical AND.
Hence, in Python:

and
,or
are logical operators 
&
,
are bitwise AND & OR operators respectively