<p>这里有很多问题。让我们一行一行地看。在</p>
<pre><code> import math
a = input("Please Enter Side A ")
</code></pre>
<p>这是一个<code>IndentationError</code>,因为第二行是从第一行开始的。在</p>
^{pr2}$
<p>这不是一个错误,但它与另外两个错误不一致,因为它在<code>"</code>之前缺少一个空格,所以看起来不太好。在</p>
<pre><code>c = input("Please Enter Side C ")
d = a+b+c
</code></pre>
<p>这不是一个错误,但是如果您调用有意义的代码,例如,<code>perimeter</code>,而不是{<cd4>},这会使代码更易于调试。在</p>
<pre><code>if d < (2*c)
</code></pre>
<p>您缺少一个<code>:</code>。这是一个语法错误。所有像<code>if</code>这样的复合语句都有冒号。在</p>
<p>而且,这并不意味着“A+B+C必须大于最长边的两倍。”你将A+B+C与最后一条边的两倍进行比较,后者应该是最短的。此外,“小于”不表示“不大于”,“小于或等于”表示“不大于”。所以,你可能想要的是<code>if d <= 2*max(a, b, c)</code>。在</p>
<pre><code> print"Shame on you, that is not a triangle!"
elif d > (2*c):
print"You Have Two Possible Answers: "
</code></pre>
<p>这不是一个错误,但是…有三个可能的答案:等边、等腰和两个都不是。在</p>
<p>另外,打印出<code>You Have Two Possible Answers:</code>,然后再打印<code>It's Equilateral: True</code>,然后<code>It's Isosceles: False</code>与打印{<cd11>}不是一回事,这是作业要求的。通常,课堂作业,甚至是现实生活中的程序,都是通过自动测试来测试的,而不是由一个可以说“是的,那是一个90%学分的东西”的人来测试的。所以,即使这不是真的,你也应该习惯于按照规定写你的输出(理想情况下,编写您的<em>自己的</em>测试用例以检查输出)。在</p>
<pre><code>else:
</code></pre>
<p>为什么不是两个案子,而是三个案子?它们相等(既不小也不大)的情况有什么特别之处?在</p>
<pre><code> xone = a=b=c
</code></pre>
<p>这是法律法规,但并不代表你的想法。<code>=</code>意味着<em>赋值</em>,所以取<code>c</code>的值,并将其赋给<code>xone</code>、<code>a</code>和{<cd16>}。这里您想要的是<code>==</code>进行等式测试:<code>xone = a == b == c</code>。(下一行也是如此。)</p>
<p>而且,<code>xone</code>和{<cd20>}又是无意义的名称;为什么<code>is_equilateral</code>和{<cd22>}?在</p>
<pre><code> xtwo = a=b
</code></pre>
<p>这和上面一样有问题,但也不是正确的测试。^{eem>第一个检验是否相等。如果第一面和第三面相等呢?这里需要的是<code>a==b or b==c or a==c</code>。在</p>
<p>另外,正如所写的,代码会说等边三角形既是等边的也是等腰的。我不确定你给我的定义是否正确。在</p>
<pre><code>print "It's Equilateral:",xone,"
</code></pre>
<p>这三个案子都是你干的。但是在第三种情况下,你只给<code>xone</code>赋值,所以你将得到一个<code>NameError</code>,除非<code>d == 2*c</code>。在</p>
<p>另外,最后还有一个杂散的<code>"</code>。这将给您一个语法错误,因为在行尾没有结束的(非三重引号)字符串是非法的。在</p>
<pre><code>print "It's Isosceles:",xtwo,"
</code></pre>
<p>这有两个与前一行完全相同的问题。在</p>
<p>除非您修复所有这些问题,否则您的代码将无法运行并执行您的逻辑。(当然,除非你的逻辑是正确的,否则它仍然是不正确的……但是一旦你运行了它,你可以测试它。)</p>