Justify the output of bahavior of 'or' keyword
<p>Consider the statement below:</p>

<p>Prob 1:</p>

<pre><code>&gt;&gt;&gt; a="abc"
&gt;&gt;&gt; 'd' or 'e' in a
'd'
</code></pre>

<p>Someone please explain this . I was expecting a True or False ...</p>

<p>Prob 2:</p>

<pre><code>&gt;&gt;&gt; print any(c in a for c in 'da')
True
</code></pre>

<p>Whats happening here ? If i do this ,</p>

<pre><code>&gt;&gt;&gt; (c in a for c in 'da')
&lt;generator object &lt;genexpr&gt; at 0x011E4300&gt;
</code></pre>

<p>As you can see , it gives generator object...What role does 'any' (method,function ??) play 
here? And the result ?</p>

<p>Prob 3:</p>

<pre><code>&gt;&gt;&gt; Pattern="sdfdfg"
&gt;&gt;&gt; if '\\'or '^' or '.' in Pattern:
    print "yes"
else:print "no"

yes
</code></pre>

<p>How on earth is this "YES" ??</p>

<p>Show me the light someone plz...........</p>
