擅长:python、mysql、java
<p><a href="http://docs.python.org/2/library/exceptions.html#exceptions.SyntaxError" rel="nofollow">SyntaxError</a>由解析器在发现语法不正确时引发,例如缺少冒号、括号、无效语句等。在不解决此问题之前,它不允许您执行代码。</p>
<p>您的代码将只在运行时抛出错误,即首次调用函数<code>tofloat(i)</code>时抛出错误,因此这是一个运行时错误。特别是<code>NameError</code>。</p>
<p>另外,运行时错误不会停止程序的执行,直到错误部分没有执行为止。因此,如果不调用<code>tofloat</code>,代码实际上可以正常运行。</p>
<p>下面的代码在第三行正确执行,但在引发<code>NameError</code>时停止。(运行时错误)</p>
<pre><code>print 1
print 2
print 3
print foo
</code></pre>
<p><strong>输出:</strong></p>
<pre><code>1
2
3
Traceback (most recent call last):
File "so.py", line 4, in <module>
print foo
NameError: name 'foo' is not defined
</code></pre>
<p>这段代码不会在我们生成<code>SyntaxError</code>时执行,即使前3行完全正确:</p>
<pre><code>print 1
print 2
print 2
print (foo
</code></pre>
<p><strong>输出:</strong></p>
<pre><code>$ python so.py
File "so.py", line 5
^
SyntaxError: invalid syntax
</code></pre>
<p>注意,python中还有一个<code>RunTimeError</code>,当检测到不属于任何其他类别的错误时,会引发这个问题</p>