title: Strange PEP8 recommendation on comparing Boolean values to True or False
body: <p>At the end of Python <a href="http://www.python.org/dev/peps/pep-0008/" rel="nofollow noreferrer">PEP 8</a> I'm reading:</p>
  <ul>
  <li><p>Don't compare Boolean values to True or False using <code>==</code></p>
  <pre><code> Yes:   if greeting:
   No:    if greeting == True:
   Worse: if greeting is True:
  </code></pre>
  </li>
  </ul>
  <p>I have no problem with that recommendation when the Boolean is <code>True</code>, but it sounds strange when checking for <code>False</code>.</p>
  <p>If I want to know if a variable greeting is False, why shouldn't I write the following?</p>
  <pre><code>    if greeting == False:
  </code></pre>
  <p>If I write <code>if not greeting:</code> it will have a very different meaning that the above statement. What if greeting is None? What if it is an empty string? Does this PEP 8 recommendation means that variables storing Boolean values should only contains True or False and that None should be avoided for these variables?</p>
  <p>To my eyes it looks like a recommendation coming from other languages with static typing and that does not fit well with Python, at least for comparing to False.</p>
  <p>And by the way, why is <code>if greeting is True:</code> described as worse than <code>if greeting == True:</code>? Should we also understand that <code>if greeting is False:</code> is also worse that <code>if greeting == False:</code>?</p>