<p>我注意到的几个问题:</p>
<ul>
<li><p><strong>您的<code>if</code>语句中缺少冒号。</strong>这是我第一次运行它时收到的错误消息:</p>
<pre><code>if d < (2*c)
↑
line 6, column 13 in tringle.py
</code></pre>
<p>这是一个很好的指示问题所在:解释器期望这里有一个冒号。所以我们解决了:</p>
^{pr2}$
<p>转到下一个错误。</p></li>
<li><p><strong>悬挂双引号。</strong>我第二次运行它,错误如下:</p>
<pre><code>print "It's Equilateral:",xone,"
↑
line 13, column 33 in tringle.py
</code></pre>
<p>这一行有三组双引号。前两个将字符串<code>It's Equilateral</code>括起来,第三个开始一个从未闭合的字符串。所以我们去掉了双引号(在第二个打印语句上也一样):</p>
<pre><code>print "It's Equilateral:", xone
print "It's Isosceles:", xtwo
</code></pre></li>
<li><p><strong><code>xone</code>并不总是分配的。</strong>。程序现在运行成功,但是当我输入26、13和4这三个长度时,我得到了另一个错误:</p>
<pre><code>Traceback (most recent call last):
File "/Users/alexwlchan/tmp/tringle.py", line 13, in <module>
print "It's Equilateral:", xone
NameError: name 'xone' is not defined
</code></pre>
<p>问题是<code>xone</code>只在<code>if</code>语句的一个分支中定义,但它作为等边三角形打印的一部分被调用,无论哪个分支被跟随。您需要重新排列打印语句以解决此问题。</p></li>
<li><p><strong>你的三角形检查实际上不起作用。</strong>以下是你的提示(强调我的):</p>
<blockquote>
<p>To be a triangle, the two <strong>shortest</strong> sides combined must be greater than the <strong>longest</strong> side.</p>
</blockquote>
<p>考虑我上面的例子:26、13和4。我从来没有警告过我这不是三角形,但很明显这样的三角形是不可能的。您任意地决定<code>c</code>是最长的边,但是为什么呢?没有理由相信那是真的。</p></li>
</ul>