What is the logic behind Python's and operator? : <p>From Python:</p>

<pre><code>&gt;&gt;&gt; 1 and 2
2
&gt;&gt;&gt; 1 and 2 and 3
3
&gt;&gt;&gt; 3 and 2 and 1
1
&gt;&gt;&gt; 'a' and 'b'
'b'
</code></pre>

<p>Why Python returns these result? What is the logic for that when dealing with pure numbers or strings?</p>
