<p>首先需要导入<code>sys</code>。放置此:</p>
<pre><code>import sys
</code></pre>
<p>在代码顶部导入<code>sys</code>模块。</p>
<p>但是,退出脚本的一个更简单的方法是这样做:</p>
<pre><code>raise SystemExit
</code></pre>
<p>上面的代码与<code>sys.exit</code>做的完全相同。</p>
<p>另外,要使代码正常工作,您还需要做两件事:</p>
<ol>
<li>重建if语句以使用<code>in</code>关键字。</li>
<li>通过在方法后面放置<code>()</code>来调用<code>.lower</code>方法。</li>
</ol>
<p>以下是脚本的固定版本:</p>
<pre><code>while True:
print "*game being played*"
# prompt to play again:
while True:
# I put .lower() up here so I didn't have to call it multiple times
replay = raw_input("Play again? ").lower()
print replay
if replay in ("yes", "y"):
break
elif replay in ("no", "n"):
raise SystemExit
else:
print "Sorry, I didn't understand that."
</code></pre>
<p>现在让我解释一下为什么你需要重新制作if语句。目前,Python正在如下读取您的代码:</p>
<pre><code>if (replay.lower == "yes") or "y":
</code></pre>
<p>此外,由于<code>"y"</code>是一个非空字符串(在Python中,该字符串的计算结果总是<code>True</code>),因此这个if语句将始终作为<code>True</code>传递。使用<code>in</code>然而就像我在上面做的那样,测试是否可以在元组<code>("yes", "y")</code>中找到<code>replay</code>。</p>