<div dir="ltr">This is an unfortunate side effect of chaining the == and in operators. Look at this equivalent expression:<br><br>>>> spam = False<div>>>> 

<span style="font-family:"Open Sans",sans-serif;font-size:12.6667px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">True == spam in (True, False)</span>

</div><div><span style="font-family:"Open Sans",sans-serif;font-size:12.6667px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">False</span></div><div><span style="font-family:"Open Sans",sans-serif;font-size:12.6667px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><br></span></div><div><span style="font-family:"Open Sans",sans-serif;font-size:12.6667px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">The expression `<span style="text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">True == spam in (True, False)` is equivalent to `(<span style="background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">True == spam) and (spam in (True, False))`, which is why it evaluates to False.</span></span></span></div><div><span style="font-family:"Open Sans",sans-serif;font-size:12.6667px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><span style="text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><span style="background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><br></span></span></span></div><div><span style="font-family:"Open Sans",sans-serif;font-size:12.6667px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><span style="text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><span style="background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">This is similar to how `10 < spam < 20` is equivalent to `(10 < spam) and (spam < 20)`, and not `(10 < spam) < 20` or `10 < (spam < 20)`<br><br>The lesson is to not mix different kinds of operators when chaining them.<br><br>-Al</span></span></span></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jul 10, 2018 at 2:24 AM, Vrancken, J.L.M. (Jos) <span dir="ltr"><<a href="mailto:j.l.m.vrancken@hr.nl" target="_blank">j.l.m.vrancken@hr.nl</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">





<div lang="NL" link="#0563C1" vlink="#954F72">
<div class="m_-8124009390053781296WordSection1">
<p class="MsoNormal"><span lang="EN-US" style="font-size:9.5pt;font-family:"Open Sans",sans-serif">True == False in (True, False)<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:9.5pt;font-family:"Open Sans",sans-serif"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:9.5pt;font-family:"Open Sans",sans-serif">This expression gives False,<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:9.5pt;font-family:"Open Sans",sans-serif">whereas in any interpretation, it should be True:<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:9.5pt;font-family:"Open Sans",sans-serif"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:9.5pt;font-family:"Open Sans",sans-serif">(True == False)  in (True, False)        returns True<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:9.5pt;font-family:"Open Sans",sans-serif"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:9.5pt;font-family:"Open Sans",sans-serif">True == (False in (True, False))        returns True<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:9.5pt;font-family:"Open Sans",sans-serif"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:9.5pt;font-family:"Open Sans",sans-serif">All this in Python 3.7.<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:9.5pt;font-family:"Open Sans",sans-serif"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:9.5pt;font-family:"Open Sans",sans-serif">Is something wrong or am I'm wrong in thinking something's wrong here?<span class="HOEnZb"><font color="#888888"><u></u><u></u></font></span></span></p><span class="HOEnZb"><font color="#888888">
<p class="MsoNormal"><span lang="EN-US" style="font-size:9.5pt;font-family:"Open Sans",sans-serif"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:9.5pt;font-family:"Open Sans",sans-serif">Jos Vrancken<u></u><u></u></span></p>
</font></span></div>
</div>

<br>______________________________<wbr>_________________<br>
docs mailing list<br>
<a href="mailto:docs@python.org">docs@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/docs" rel="noreferrer" target="_blank">https://mail.python.org/<wbr>mailman/listinfo/docs</a><br>
<br></blockquote></div><br></div>