擅长:python、mysql、java
<p>几个问题:</p>
<p>1)当给我们一个错误消息时,你应该指出它所指的代码行。在</p>
<p>2)这是SO问题(与Python和numpy相关)中最常见的错误消息之一。在</p>
<p>我猜错误发生在:</p>
<pre><code>grid = (a>=0 and a<20) or (a>=40 and a<60) or (a>=80 and a<100) or (a>=120 and a<140) or++ (a<=-20 and a>-40) or (a<=-60 and a>-80) or (a<=-100 and a>-120) or (a<=-140 and a>-160)
</code></pre>
<p>有两个原因</p>
<p>1)使用<code>and/or</code>代替<code>&/|</code></p>
<p>2)相对于&/|的<code>>=</code>类运算符的优先级。把<code>()</code>放在前者的周围。在</p>
<hr/>
^{pr2}$
<p>所以正确的表达方式是</p>
<pre><code>((a>=0) & (a<20)) | ((a>=40) & (a<60)) | ((a>=80) & (a<100)) ...
</code></pre>