title: How chain of `and` operators works in python?
body: <p>In my program encountered with this:</p>
  
  <pre><code>&gt;&gt;&gt; True and True and (3 or True)
  3
  
  &gt;&gt;&gt; True and True and ('asd' or True)
  'asd'
  </code></pre>
  
  <p>while I expected to get some boolean value depending on the result in brackets. So if I try comparisons like these <code>(0 or True)</code> or <code>('' or True)</code> python will return <code>True</code>, which is clear because <code>0</code> and <code>''</code> equivalent to <code>False</code> in comparisons. </p>
  
  <p>Why doesn't python return boolean value by converting <code>3</code> and <code>'asd'</code> into <code>True</code>?</p>