你的代码又报错了。屏幕上那行红色英文像一盆冷水浇下来。你开始怀疑自己是不是真的适合学编程。
停下。全世界学Python的人都经历过这个阶段。你不是一个人。
新手犯的错误高度相似。我把常见的错误分成了几个类型。对照着看,你会发现原来大家都摔在同一个坑里。
第一类:缩进错误
大部分人第一次遇到“IndentationError”都愣了。你写的时候多按了一个空格,或者少按了一个Tab。Python对缩进很严格。这不是你逻辑有问题,是你手指偷懒了。
症状:代码看起来没问题,一运行就报错。解决方式最简单。把整个代码块选中按Tab统一缩进。或者用编辑器自动格式化。VS Code按Shift+Alt+F就行。
第二类:括号与引号不配对
你写了一个函数,参数好几个括号嵌套。结果少写了一个右括号。或者字符串里引号用混了。这种错误叫“SyntaxError”。
解决方法也很土。写代码的时候数清楚括号。写成对的。每写一个左括号立刻写右括号,再在中间填内容。
第三类:变量名拼写错误
你定义了一个变量叫user_name,后面用的时候写成了username。或者大小写搞错了。Python对大小写敏感。这种错误最气人。你反复看代码,觉得每个字母都对。
遇到这种错误,别硬看。把变量名复制出来。看看定义的地方怎么写的。贴到编辑器里让代码自己高亮。拼写错的地方颜色不对。
第四类:数据类型混乱
你写了一个列表里存的是字符串。结果你试图对字符串做数学运算。或者你拿到一个数字,想调用字符串的方法。这种运行时错误叫“TypeError”。
检查一下你的数据是什么类型。用type()函数打印出来看看。有时候你从API拿到的数据是字符串形式的数字,要先转换才能运算。
第五类:索引越界
你有一个列表长度是5,你访问[5]这个位置。忘了Python列表的索引从0开始。第1个元素是[0],第5个元素是[4]。这种错误叫“IndexError”。
解决方式。记住索引从0开始。访问最后一个元素用[-1]。写循环的时候用range(len(list)),别把边界算错。
第六类:忘记导入模块
你用了random函数,没写import random。或者你用了datetime,没导入。这种错误叫“NameError”。
用任何外部功能前先导入模块。在代码最上面写好需要导入的内容。如果有不确定的,先搜一下官方文档。
第七类:逻辑错误但代码不报错
最可怕的一种。代码运行了,结果不对。没有红色错误提示。你只能自己调试。这种错误通常因为你写条件判断的时候忘了考虑边界情况。
遇到这种问题。在关键位置加print,把中间结果打印出来。看看哪一步的数据跟你预想的不一样。或者用断点调试。一行一行看代码怎么做事的。
这些错误全世界的Python新手都犯过。你在网上搜“IndentationError”能搜出几百万条结果。你不是不适合,你只是在走一条其他人走过的路。
下次报错的时候。不想着是不是自己不行。先想这属于哪一类。对照这个表找解决方法。写代码本来就是个反复试错的过程。你越犯错,学得越快。