title: Why "a in b == c" is equal to "(a in b) and (b == c)"
body: <p>I found that the result of evaluating <code>a in b == c</code> is always equal to <code>(a in b) and (b == c)</code>. Could anyone explain that?</p>
  <p>Here is an example running on Python3.7:</p>
  <pre><code>&gt;&gt;&gt;&gt; &quot;123&quot; in &quot;1234&quot; == &quot;1234&quot;
  True
  
  &gt;&gt;&gt;&gt; &quot;123&quot; in &quot;1234&quot; != &quot;1234&quot;
  False
  
  &gt;&gt;&gt;&gt; &quot;123&quot; in &quot;1234&quot; != &quot;12345&quot;
  True
  
  &gt;&gt;&gt;&gt; &quot;123&quot; in &quot;1234&quot; == &quot;12345&quot;
  False
  
  &gt;&gt;&gt;&gt; &quot;888&quot; in &quot;1234&quot; == &quot;1234&quot;
  False
  
  </code></pre>