擅长:python、mysql、java
<p>下面是一个使用交互式shell的快速示例:</p>
<pre><code>>>> x = 9
>>> y = 31
>>> sum([z for z in range(x, y + 1) if z % 2 == 0])
220
</code></pre>
<p>这使用了名为<a href="http://docs.python.org/2/tutorial/datastructures.html#list-comprehensions" rel="nofollow">list comprehension</a>的东西和内置方法<a href="http://docs.python.org/2/library/functions.html#sum" rel="nofollow">sum</a>。</p>
<p>现在,为了解释这一切是如何协同工作的:</p>
<p>Range,正如您已经知道的,返回两个参数之间的数字列表。</p>
<pre><code>>>> range(x, y + 1)
[9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31]
</code></pre>
<p>模运算符(%)用来除两个数,然后给你余数。这使得查找偶数变得非常方便:任何偶数除以2都将有0的余数。</p>
<pre><code>>>> 5 % 2
1
>>> 4 % 2
0
</code></pre>
<p>列表理解使用这个技巧来构建一个包含给定范围内每个偶数的值的列表。</p>
<pre><code>>>> [z for z in range(x, y + 1) if z % 2 == 0]
[10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30]
</code></pre>
<p>最后,<code>sum()</code>迭代并将该列表为您生成的所有值相加。</p>
<pre><code>>>> sum([z for z in range(x, y + 1) if z % 2 == 0])
220
</code></pre>