<p>Python附带了一个<a href="http://docs.python.org/2/library/" rel="nofollow">great standard library</a>(您可能已经发现了,因为您正在使用<em>itertools</em>),在这个模块中您还可以找到一个<a href="http://docs.python.org/2/library/random.html" rel="nofollow">random</a>模块。在</p>
<p>你可以用<a href="http://docs.python.org/2/library/random.html#random.randint" rel="nofollow">random.randint</a>来模拟掷骰子。有多种方法可以解决这个问题。第一个代码示例有点有限,第二个更通用。在</p>
<pre><code>import random
# '_' (underscore) is used for values that are generated, but that you do not
# care about - here we only want to repeat seven times and do not care about
# the actual loop count
for _ in range(7):
# generate three random numbers between [1 and 6]
# and store the values in a, b, c respectively (tuple unpacking)
a, b, c = (random.randint(1, 6) for _ in range(3))
# if one of the conditions holds, break out of the loop early
if a == b or a == c or b == c or a == b == c:
break
</code></pre>
<p>正如@Paulo所指出的,您可以使用另一种更简洁的方法来检查列表(或元组)的<code>n</code>元素是否都不同,即将所有元素放入<a href="http://docs.python.org/2/library/stdtypes.html#set" rel="nofollow">set</a>:</p>
^{pr2}$
<p>回答更新后的问题,只需使用<a href="http://docs.python.org/2/library/functions.html#sum" rel="nofollow">^{<cd2>}</a>:</p>
<pre><code> total = sum(dice)
</code></pre>