# 小白学python时最容易犯的6个错误




最近又在跟之前的同学一起学习python，一起进步，发现很多测试同学在初学python的时候很容易犯一些错误，特意总结了一下。其实这些错误不仅是在学python时会碰到，在学习其他语言的时候也同样会碰到。

#### 错误1: 缩进

python是强制缩进的语言，很多同学在初次接触python时可能会不习惯，缩进老是犯错。比如

```

Python 2.7.12 (default, Sep 17 2016, 13:47:40)
[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.38)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>     good = "ok"
  File "<stdin>", line 1
    good = "ok"
    ^
IndentationError: unexpected indent

```

这种错误一般会提示```IndentationError```，最后根据错误所在行一般都能够很快的解决问题。

#### 错误2: 中英文符号

很多初学者是分不清中英文符号的区别的，比如说```:```这是英文的冒号，而```：```这个冒号是中文的。乍一看长得差不多，但实际上确实不同的字符。比如

```
>>> x = 0
>>> if x == 1：
  File "<stdin>", line 1
    if x == 1：
             ^
SyntaxError: invalid syntax

```

上面的错误很明显，语法错误，冒号有问题。作为初学者，下面这些符号在输入的时候你可能需要警惕一些

* 英文逗号
* 英文冒号
* 英文小括号
* 英文中括号

符号不准确的情况下，一般python解释器会提示```SyntaxError```，遇到这个错误不要怕，想办法解决就好。

#### 错误3：拼写错误

因为我们的母语不是英文，所以很多时候我们会把单词拼写错误而觉察不到。比如

```

>>> word = "hello world"
>>> print(world)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'world' is not defined

```

上面的情况python抱怨道：```world```这个变量没有定义, 很显然我们定义变量名是```word```。一些同学甚至会将```hello world```错拼成是```hello word```，可见对微软的office套件爱的深沉。


#### 错误4：代码块忘了冒号

python的很多代码块结构是需要冒号的，这个我最初非常不习惯，老是忘记写，比如

```

>>> if 1 == 2
  File "<stdin>", line 1
    if 1 == 2
            ^
SyntaxError: invalid syntax


```

这里if后面要跟冒号来引出下面的代码块。忘记冒号的时候一般会报语法错误。


#### 错误5: IDE综合症

有些同学喜欢一开始就使用IDE，因为一些不错的IDE是有语法错误提示的，所以当你敲错了以后，代码编辑器内可能充斥着红色或黄色的波浪线，不过有时候这些线可能不是很准确，就导致大家有些手足无措，不敢放心大胆敲代码，渐渐的挫败感累积，然后放弃。

另外很多同学喜欢在IDE内直接运行python代码，导致很多时候传参不便，无法得到想要的结果。

其实新手可以先土一点，尝试不用IDE，等熟练一些了再使用也不迟。

#### 错误6：只看不写或者只写不看

有些同学只看书，不写代码，结果除了疑惑越来越多以外，代码能力提升速度其实有限

有些同学只写代码，不看别人写的代码，结果一些常见套路不会，进步速度也有限

代码其实要多看，多看别人写的代码，python标准库里的代码尽管不容易，但是可以看一下，github上的一些开源项目，也可以找一些简单的来看；写一些能让自己有成就感的代码，从简单的开始，逐渐复杂，循序渐进。


综上，读完这边文章，你应该了解这些点

* SyntaxError: invalid syntax：这是语法错误
* IndentationError: unexpected indent： 这是缩进错误
* NameError: name 'world' is not defined： 这是变量没定义
* 出错没关系，解决掉就好了
* 代码要多看多写
* 万事开头难，坚持到最后才有收获




原始封面

![课程图片](https://images.unsplash.com/photo-1513836279014-a89f7a76ae86?w=300)


