擅长:python、mysql、java
<p>你发现了Python的两个小怪癖。第一:一个范围本身就是一个iterable,但是可以把一个iterable放在另一个iterable里面。你知道吗</p>
<p>换句话说,你的陈述</p>
<pre class="lang-py prettyprint-override"><code>if collectEyesBlade in [range(0,9)]:
</code></pre>
<p>正在检查collectEyesBlade是否是列表中的一个项,该列表只有一个项:range iterable。既然你没有进入一个范围,它就失败了。你知道吗</p>
<p>你可以说</p>
<pre class="lang-py prettyprint-override"><code>if collectEyesBlade in list(range(0,9)):
</code></pre>
<p>这将把范围iterable变成一个实际的列表,或者</p>
<pre class="lang-py prettyprint-override"><code>if collectEyesBlade in range(0,9):
</code></pre>
<p>两个都应该做你想做的。你知道吗</p>
<p>然而,正如另一位回答者所提到的,这只是问题的一半。如果您的输入实际上可能是整数类型,那么上面的内容就足够了,但您要求的是字符串输入。输入是“1”并不意味着它不是字符串。你知道吗</p>
<p>这里有几个选择。您可以尝试将字符串输入转换为整数,如果由于无法将字符串转换为整数而失败,请继续;或者可以将要比较的数字范围/列表转换为字符串。你知道吗</p>