<h2>回答</h2>
<p><code>&</code>符号是按位与运算符。与1一起使用时,它基本上会屏蔽该值以提取最低位,或者换句话说,它会告诉您该值是偶数还是奇数。</p>
<h2>关于Python的<code>&</code>操作符的更多信息</h2>
<p>有关详细信息,请参见:<a href="http://wiki.python.org/moin/BitwiseOperators" rel="noreferrer">http://wiki.python.org/moin/BitwiseOperators</a></p>
<h2>为什么要检查奇偶</h2>
<p><em>编辑:添加此部分,因为此答案获得了一些爱</em></p>
<p>将一个值与1相乘的原因可能一开始并不明显。</p>
<p>一个数字的二进制表示本质上是从最右边的数字1、2、4、8开始向左移动的2次幂的是或否序列的和。。。</p>
<p>用这种方法表示任何数字只有一种方法。E、 数字13(以10为基数)可以用二进制写为“1101”(或十六进制写为0xD,但那不在这里)。请看这里:</p>
<pre><code> 1 1 0 1
x x x x
8 4 2 1
= = = =
8 + 4 + 0 + 1 = 13
</code></pre>
<p>注意,除了最右边的二进制数字之外,所有其他的<code>1</code>数字都将向和中添加偶数(即2的倍数)。所以得到奇数和的唯一方法就是从最右边的数字加上奇数1。所以如果我们好奇一个数字是奇数还是偶数,我们可以看看它的二进制表示,忽略除最右边的数字以外的所有内容。</p>
<p>为此,我们使用位与运算符。二进制中的值<code>1</code>表示为<code>1</code>:</p>
<pre><code> 0 0 0 1
x x x x
8 4 2 1
= = = =
0 + 0 + 0 + 1 = 1
</code></pre>
<p>与这样的<code>1</code>值相乘将导致<code>1</code>(如果该值的最右边的位已设置),如果未设置<code>0</code>。</p>
<p>因为在大多数语言中,<code>0</code>通常被认为是“false”,而非零值被认为是“true”,所以我们可以简单地说:</p>
<pre><code>if (value & 1): do_something_with_odd_value()...
</code></pre>