title: Why does ... == True return False in Python 3?
body: <p>I am learning python, but I'm a bit confused by the following result.</p>
  
  <pre><code>In [41]: 1 == True
  Out[41]: True
  
  In [42]: if(1):
      ...:     print('111')
      ...:     
  111
  
  In [43]: ... == True
  Out[43]: False &lt;===== why this is False while '1 == True' is True in previous sample
  
  In [44]: if (...): &lt;==== here ... just behaves like True
      ...:     print('...')
      ...:     
  ...
  </code></pre>
  
  <p>According to <a href="https://docs.python.org/3/reference/datamodel.html#the-standard-type-hierarchy" rel="noreferrer">the documentation</a>, <code>...</code> has a truth value of True.</p>
  
  <p>But I still feel the above code a bit inconsistent.</p>
  
  <p>...And something more interesting:</p>
  
  <pre><code>In [48]: 2==True
  Out[48]: False &lt;===== why 1==True returns True while 2==True returns False?
  
  In [49]: if(2):
      ...:     print('222')
      ...:     
  222
  </code></pre>