Similarly (-1==-1 & 1==1) is also False.
Apologies if this is something obvious but I can't find an explanation for it.
So your expression 0 < 0 == 0 is really (0 < 0) and (0 == 0), which evaluates to False and True which is just False. Show activity on this post.
Why log (0) is not defined. The real logarithmic function log b (x) is defined only for x>0. We can't find a number x, so the base b raised to the power of x is equal to zero: b x = 0 , x does not exist So the base b logarithm of zero is not defined. For example the base 10 logarithm of 0 is not defined:
If 0 0 = 0, \frac00=0, 0 0 = 0, the function f ( x) = 0 x f (x)=\frac0x f ( x) = x 0 becomes continuous at x = 0. x=0. x = 0. But this is not satisfactory in all cases, and the arbitrariness of the choice will break other laws of arithmetic. For instance,
The strange behavior your experiencing comes from pythons ability to chain conditions. Since it finds 0 is not less than 0, it decides the entire expression evaluates to false. As soon as you break this apart into seperate conditions, you're changing the functionality.
&
is the bitwise AND operator. As mentioned in the documentation, Bitwise operators have higher precedence than logical operators, so
0 == 0 & 1 == 1
Becomes
0 == (0 & 1) == 1
And you can imagine it goes downhill from there:
0 == (0 & 1) == 1
=> 0 == 0 == 1
=> 0 == 0 and 0 == 1
=> True and False
=> False
Assuming what you wanted was a logical AND, the python way to do that would be using and
:
0 == 0 and 1 == 1
Which gives you True
as you'd expect.
Lets break this up.
The highest priority sign here is the brackets. Except we're wrapping the entire expression, so they don't do anything.
Next we have the bitwise operator &
.
0 & 1
which equals 0
.
This leaves us with 0 == 0 == 1
As 0
does not equal 1
, we get False
.
For reference, here is the python documentation about operator precedence.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With