title: Why is there no explicit emptyness check (for example `is Empty`) in Python
body: <p><a href="https://www.python.org/dev/peps/pep-0020/" rel="nofollow noreferrer" title="PEP 20 -- The Zen of Python">The Zen of Python</a> says "Explicit is better than implicit". Yet the "pythonic" way to check for emptiness is using implicit booleaness:</p>
  
  <pre><code>if not some_sequence:
      some_sequence.fill_sequence()
  </code></pre>
  
  <p>This will be true if <code>some_sequence</code> is an empty sequence, but also if it is <code>None</code> or <code>0</code>.</p>
  
  <p>Compare with a theoretical explicit emptiness check:</p>
  
  <pre><code>if some_sequence is Empty:
      some_sequence.fill_sequence()
  </code></pre>
  
  <p>With some unfavorably chosen variable name the implicit booleaness to check for emptiness gets even more confusing:</p>
  
  <pre><code>if saved:
      mess_up()
  </code></pre>
  
  <p>Compare with:</p>
  
  <pre><code>if saved is not Empty:
      mess_up()
  </code></pre>
  
  <p>See also: "<a href="https://stackoverflow.com/questions/53513/best-way-to-check-if-a-list-is-empty">Python: What is the best way to check if a list is empty?</a>". I find it ironic that the most voted answer claims that implicit is pythonic.</p>
  
  <p>So is there a higher reason why there is no explicit emptiness check, like for example <code>is Empty</code> in Python?</p>