擅长:python、mysql、java
<p>导致这个错误的问题是<code>h=h+1 and m=0</code>,如果您想在一行中执行此操作,您可以执行<code>h, m = h + 1, m</code>,尽管我个人会将它拆分为两行</p>
<p>除此之外,还有一些其他问题:</p>
<ol>
<li><p><code>if h>17 and m>16:</code>上的缩进错误。只有在
<code>m</code>是第一个<code>>= 60</code>,因为<code>m</code>被重置为<code>0</code>,而<code>m</code>永远不会是<code>>16</code>,所以while循环将永远运行</p>
<p>通过以下方式解决此问题:</p>
<pre><code>if m>=60:
h=h+1
m=0
if h>17 and m>16:
break
</code></pre></li>
<li><p>因为你重置了<code>m=0</code>,以后再也不会是<code>16</code><code>16 -> 36 -> 56 -> 76 -> 0 -> 20 -> 40 -> 60 -> 0 -> ...</code>当<code>m=m-60</code>超过<code>60</code></p>时,可以通过重置<code>m=m-60</code>来解决这个问题</li>
</ol>
<p>最终的脚本将类似于:</p>
<pre><code>h = 13
m = 36
i = 20
while(True):
m=m+i
if m>=60:
h=h+1
m=m-60
if h>17 and m>16:
break
print("The train will leave at {0:0d}:{1:0d} tomorrow".format(h, m))
</code></pre>