擅长:python、mysql、java
<p>我建议您将<code>for</code>循环与<code>random.sample</code>结合使用,而不是<code>while</code>循环。事先创建要提供给<code>sample</code>的函数列表:</p>
<pre><code>from random import sample
funcs = [french_toast, pancakes]
for func in sample(funcs, len(funcs)):
func()
</code></pre>
<p>这将在每次迭代中随机选择一个函数来遍历所有函数。在</p>
<p>或者,您可以使用<code>shuffle</code>对列表进行<code>random.shuffle</code>进行<code>shuffle</code>,然后对其进行迭代,这样也会更快(不过,速度不应该是这里最关心的问题):</p>
^{pr2}$
<p>如果需要,请将它们放入函数中:</p>
<pre><code>from random import shuffle
# use *funcs for passing arbitrary number of
# functions as positional arguments.
def call_funcs_randomly(funcs):
shuffle(funcs)
for func in funcs:
func()
</code></pre>
<p>打电话给他们:</p>
^{4}$
<hr/>
<p>正如一条注释所指出的,不要使用<code>random</code>作为函数名,它有可能掩盖模块<code>random</code>,从而导致奇怪的错误。在</p>