<p>您没有缩进您的<code>print</code>语句。无论<code>if</code>测试如何,它们总是执行<strong></p>
<p>Python通过缩进形成块;您需要将只有在<code>if</code>测试为真时才能执行的所有行放在同一缩进处,并且缩进需要大于<code>if</code>行本身:</p>
<pre><code>if (VarConfirm.strip()) is "<":
from random import randint
print(randint(varGuess + 1,99))
if (VarConfirm.strip()) is ">":
from random import randint
print(randint(2,varGuess - 1))
</code></pre>
<p>请注意,我将<code>import</code>语句放在<em>新行</em>中。您可以将'block'与<code>if</code>语句放在同一行,但该块仅限于一个简单语句;你只能做一件事</p>
<p>您也不应该使用<code>is</code>来测试字符串的相等性;这些测试通常应该失败,因为<code>raw_input()</code>函数不需要返回<em>内存中与您用来测试的对象完全相同的对象。无论如何,CPython所做的是一个内部实现细节,您不能依赖它。您要测试它们的<em>值</em>是否相等:</p>
<pre><code>if (VarConfirm.strip()) == "<":
from random import randint
print(randint(varGuess + 1,99))
if (VarConfirm.strip()) == ">":
from random import randint
print(randint(2,varGuess - 1))
</code></pre>
<p>但是,您的导入会向您的文件中添加新的全局变量;把它们放在你剧本的顶端:</p>
<pre><code>from random import randint
# other code
if (VarConfirm.strip()) == "<":
print(randint(varGuess + 1,99))
if (VarConfirm.strip()) == ">":
print(randint(2,varGuess - 1))
</code></pre>
<p>或者直接用<code>random.randint()</code>;您之前已经导入了<code>random</code>模块:</p>
<pre><code>if (VarConfirm.strip()) == "<":
print(random.randint(varGuess + 1,99))
if (VarConfirm.strip()) == ">":
print(random.randint(2,varGuess - 1))
</code></pre>
<p>你不需要用那么多括号;在Python 2中<code>print</code>是一个语句,而不是一个函数(就像<code>return</code>):</p>
<pre><code>if VarConfirm.strip() == "<":
print random.randint(varGuess + 1,99)
if VarConfirm.strip() == ">":
print random.randint(2,varGuess - 1)
</code></pre>
<p>因为您的测试是互斥的,所以可以使用<code>if ... elif ...</code>,Python只需在其中一个测试为true之前保持测试:</p>
<pre><code>if VarConfirm.strip() == "<":
print random.randint(varGuess + 1,99)
elif VarConfirm.strip() == ">":
print random.randint(2,varGuess - 1)
elif VarConfirm.strip() == "=":
print "YES, the program has successfully guessed your number ^^"
</code></pre>
<p>你可以避免经常打电话给<code>.strip()</code>;只需调用一次并存储结果:</p>
<pre><code># ask for the input and strip immediately before storing the result:
VarConfirm = raw_input(":").strip()
if VarConfirm == "<":
print random.randint(varGuess + 1,99)
elif VarConfirm == ">":
print random.randint(2,varGuess - 1)
elif VarConfirm == "=":
print "YES, the program has successfully guessed your number ^^"
</code></pre>