<div class="gmail_quote">On Wed, Mar 16, 2011 at 12:22 AM, Donald Bedsole <span dir="ltr">&lt;<a href="mailto:drbedsole@gmail.com">drbedsole@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<br>
not (False and True)<br>
<br>
Python evaluates it as &quot;True&quot;<br>
<br>
Is it because:<br>
1)You evaluate what&#39;s in the parentheses first.  A thing can not be<br>
false and true at the same time, so the answer is false.<br></blockquote><div><br>Yes, the expression in the parenthesis is evaluated first.  However it&#39;s not just one thing being evaluated.<br><br>&#39;and&#39; evaluates one argument at a time and returns immediately if the argument is False.<br>

<br>In this case there are 2 distinct &#39;things&#39;.  False and True.  False,
 obviously, evaluates to False, which causes &#39;and&#39; to stop and return 
False.  This reduces the expression to...<br><br>not False<br> </div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
2)However, the &quot;not&quot; outside the parentheses flips the meaning of what<br>
is inside the parentheses, so false becomes &quot;True.&quot; ?<br></blockquote></div><br>Correct, the expression &quot;not False&quot; evaluates to True.<br><br>-- <br>Jack Trades<br><a href="http://pointlessprogramming.wordpress.com">Pointless Programming Blog</a><br>
<br>