Python - 语法错误


一般来说,计算机程序中会出现三种类型的错误:语法错误、逻辑错误和运行时错误。语法错误是编写程序时最常见的错误类型,无论您是编程新手还是经验丰富的程序员。语法错误基本上与某种语言的语法规则有关。

只要不遵循语言制定的规则,就会出现语法错误。在 Python 中,有明确定义的规则来为标识符(即变量、函数、类、模块或任何 Python 对象)命名。同样,Python 关键字应按照定义的语法使用。只要不遵守这些规则,Python 解释器就会显示语法错误消息。

下面给出了在 Python 交互式 shell 中声明变量的简单示例。

>>> name="Python
   File "<stdin>", line 1
      name="Python
           ^
SyntaxError: unterminated string literal (detected at line 1)

Python 解释器显示语法错误以及特定的解释消息。在上面的示例中,由于引号未闭合,因此出现语法错误。

类似地,Python 要求每个函数名称后应跟括号,在括号内给出函数参数。

在下面的示例中,我们收到语法错误 -

>>> print "Hello"
   File "<stdin>", line 1
      print "Hello"
      ^^^^^^^^^^^^^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?

从错误消息中可以理解原因是 print() 函数缺少括号。

有许多流行的 Python 编程 IDE。它们中的大多数都使用彩色语法突出显示,这使得可以轻松直观地识别错误。

VS Code就是这样的 IDE 之一。输入指令时,语法错误会适当突出显示。

语法错误

该错误被突出显示。如果将光标放在那里,VS Code 会告诉您有关错误的更多信息。如果您仍然继续执行代码,命令终端中会出现错误消息。

语法错误很容易识别和纠正。VS Code 等 IDE 使这一切变得简单。然而,有时,您的代码没有显示任何语法错误,但程序的输出仍然不是您预期的。此类错误属于逻辑错误。它们很难被发现,因为错误在于代码中使用的逻辑。您可以通过经验学习如何纠正逻辑错误。VS Code 和其他 IDE 具有监视和断点等功能来捕获这些错误。

第三种类型的错误是运行时错误,也称为异常。您的程序中没有语法错误,也没有任何逻辑错误。大多数时候,程序会给出期望的输出,但在某些特定情况下,您会得到程序的异常Behave,例如程序异常终止或给出一些荒谬的结果。

引起异常的因素通常是程序外部的。例如输入错误、类型转换或IO设备故障等。

什么是异常?

异常是在程序执行期间发生的事件,该事件扰乱了程序指令的正常流程。一般来说,当Python脚本遇到它无法处理的情况时,它会引发异常。异常是代表错误的 Python 对象。

当 Python 脚本引发异常时,它必须立即处理异常,否则它将终止并退出。

Python 的标准库定义了标准异常类。与其他 Python 类一样,异常也是 Object 类的子类。以下是 Python 异常的对象层次结构。

object
   BaseException
      Exception
         ArithmeticError
            FloatingPointError
            OverflowError
            ZeroDivisionError
         AssertionError
         AttributeError
         BufferError
         EOFError
         ImportError
            ModuleNotFoundError
         LookupError
            IndexError
            KeyError
         MemoryError
         NameError
         OSError
         ReferenceError
         RuntimeError
         StopAsyncIteration
         StopIteration
         SyntaxError