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会在代码执行前通过红色波浪线的形式告知用户并给出提示。如下图:

python运行中文报错 python语言错误_Python

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。