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 。在输入指令时,语法错误会被适当地高亮显示。
错误已经标出。如果你把光标放在那里,VS Code会告诉你关于错误的更多信息。如果你继续执行代码,错误消息将出现在命令终端中。
语法错误很容易识别和纠正。像VS Code这样的IDE使得这一点变得容易。然而,有时候,你的代码没有显示出任何语法错误,但程序的输出却不是你所预期的。这种错误被称为逻辑错误。它们很难检测,因为错误存在于代码中使用的逻辑中。你通过经验学会如何纠正逻辑错误。VS Code和其他IDE具有例如监视和断点等功能,可以捕捉这些错误。
第三种类型的错误是运行时错误,也称为异常。在你的程序中,既没有语法错误,也没有逻辑错误。大多数情况下,程序会给出期望的输出,但在某些特定情况下,程序会产生异常行为,比如程序异常终止或给出一些荒谬的结果。
导致异常的因素通常是程序外部的。例如输入错误、类型转换或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