7.1 错误(errors)
由于Python代码通常是人类编写的,那么无论代码是在解释之前还是运行之后,或多或少总会出现一些问题。
在Python代码解释时遇到的问题称为错误
,通常是语法和缩进问题导致的,这些错误会导致代码无法通过解释器的解释阶段,代码也就无法执行。
7.1.1 语法错误(syntax errors)
当Python代码不符合Python的语法,在解释器进行解释时就会检测到语法错误
并指出错误行,Python会在检测到错误的位置前面显示一个小箭头
。语法错误就是由箭头
前面的标记代码引起的。引起语法错误的几种情况
- 遗漏了标点符号;比如:漏了冒号等
- 混用中英文符号;
- 关键字拼写错误或遗漏;比如:while写成了whlie等;
- 变量名或函数名使用了关键字;比如:while = 1;
- 检查到不完整的字符串等;比如:'我是张三
语法错误(syntax errors)是初学者最容易犯的错误,简单来说就是代码不符合Python的基本语法规范而导致的问题。语法错误示例1
>>> print('我是一只小小鸟)
File "E:\BaiduNetdiskWorkspace\FrbPythonFiles\study\main.py", line 1
print('我是一只小小鸟)
^
SyntaxError: unterminated string literal (detected at line 1)
如上,在Python语法中,字符串是由一对引号包住的,上面的print语句中只有一个单引号,不符合Python的语法,于是报错了(SyntaxError),并且告诉了我们line 1(第一行)有问题。
语法错误示例2
>>> print(1)print(2)
File "E:\BaiduNetdiskWorkspace\FrbPythonFiles\study\main.py", line 1
print(1)print(2)
^^^^^
SyntaxError: invalid syntax
同一行中写了两条语句,并且没有通过;
分隔,于是报语法错误了。
语法错误示例3
for i in range(10)
print(i)
File "E:\BaiduNetdiskWorkspace\FrbPythonFiles\study\main.py", line 1
for i in range(10)
^
SyntaxError: expected ‘:’
range(10)后面没有添加:
如果是使用Pycharm等专门的IDE来编写Python程序,那么Pycharm会在代码执行前通过红色波浪线的形式告知用户并给出提示。如下图:
7.1.2 缩进错误(IndentationError)
缩进错误
,顾名思义,就是在编写代码的时候该缩进的时候没有缩进,不应该缩进的地方又缩进了,又或者需要缩进4个空格,开发者只缩进了2个空格,或者Tab缩进和空格缩进混用都有可能会导致这个缩进错误。
在Python中,冒号下面的缩进会帮助程序区分代码之间的层次,这些不同的层次代表了代码运行的逻辑及先后顺序。但如果在需要缩进的语句下面没有使用正确的缩进层级,甚至没有使用缩进,程序就会报错。缩进错误示例
print('我是一只小小鸟')
age = 10
File “E:\BaiduNetdiskWorkspace\FrbPythonFiles\study\main.py”, line 2
age = 10
IndentationError: unexpected indent
age = 10应当和第一条命令是同属于一个逻辑结构中,是不需要缩进的,但是如果缩进了,则会报错:IndentationError。