回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我尝试在这个<code>while</code>循环上循环几次,以收集关于输出正确的行序列所需时间的信息(拼写“CODER”)。我期望我的<code>for</code>循环十次。相反,我只得到一个循环,然后在0秒内完成一个故障重复。你知道吗</p>
<p>我可以用<code>while i < 10</code>替换<code>for i in (0, 10)</code>行,然后添加一个<code>i += 1</code>以获得一个较长的故障输出(它将第一个结论循环到while循环n次,而不是2次)。我还尝试将列表和字典移动到for循环中,但这并不能使循环正常运行。你知道吗</p>
<pre><code>from random import randint
from time import sleep
import datetime
stats_collection = []
correct_order = [0, 1, 2, 3, 4] # A list of numbers between 0 and 4
output_order = []
iterations = 0
the_lines = {0: "...###.................#####...####..",
1: "..#...#.........####...#.......#...#.",
2: "..#.......###...#...#..##......##....",
3: "..#...#..#...#..#...#..#.......#.#...",
4: "...###....###...####...#####...#..#..",}
for i in (0,10):
a_currentDT = str(datetime.datetime.now())
while output_order[-5:] != correct_order:
next = randint(0, 4) # Select between
output_order.append(next)
print(the_lines[next])
iterations += 1
# sleep(0.125)
final_iterations = iterations
b_currentDT = str(datetime.datetime.now())
print("Finished!")
print("Iterations: {num}".format(num=final_iterations))
print(a_currentDT)
print(b_currentDT)
stats_collection.append(final_iterations)
print(stats_collection)
</code></pre>
<p>我所期望的是类似于<code>print(stats_collection)</code>的打印列表,它类似于:<code>[134, 2948, 4001, 598, 910, 1000, 2000, 3003, 10593, 403]</code>或另一组10个数字。但是我只打印了两次第一次运行,或者如果我用一个<code>while</code>循环替换<code>for</code>循环(比如<code>while i < 10</code>或者其他什么)。你知道吗</p>
<p>以下是我从<code>for i in (0, 10):</code>得到的作为<code>while</code>循环机制的输出:</p>
<pre class="lang-none prettyprint-override"><code>Finished!
Iterations: 8598
2019-06-02 15:21:21.543503
2019-06-02 15:21:21.641444
Finished!
Iterations: 8598
2019-06-02 15:21:21.641444
2019-06-02 15:21:21.641444
[8598, 8598]
</code></pre>
<p>我希望代码再次运行while循环,得到完全不同的结果,包括总共10个不同的结果,如下所示:</p>
<pre class="lang-none prettyprint-override"><code>Finished!
Iterations: 8598
2019-06-02 15:21:21.543503
2019-06-02 15:21:21.641444
Finished!
Iterations: 159
2019-06-02 15:21:21.641445
2019-06-02 15:21:21.700555
[8598, 159]
</code></pre>
<p>当然有十种不同的结果。你知道吗</p>
<p>除了这个复杂的错误之外,代码工作得很好。我真的不明白为什么代码会这样做。你知道吗</p>
<p>可以看到第二个循环实际上是瞬时完成的。我完全不知道发生了什么。我不能像那样在<code>for</code>循环中主持<code>while</code>循环吗?你知道吗</p>