IndentationError: unindent does not match any oute

【问题】 
一个python脚本,原本都运行好好的,而后写了几行代码,并且也都确保每行都对齐了,可是运行的时候,却出现语法错误: 
IndentationError: unindent does not match any outer indentation levelpython

【解决过程】 
1.对于此错误,最多见的缘由是,的确没有对齐。可是我根据错误提示的行数,去代码中看了下,没啥问题啊。 
都是用TAB键,对齐好了的,没有不对齐的行数啊。 
2.觉得是前面的注释的内容影响后面的语句的语法了,因此把前面的注释也删除了。 
结果仍是此语法错误。 
3.后来折腾了半天,忽然想到了,把当前python脚本的全部字符都显示出来看看有没有啥特殊的字符。web

当前用的文本编辑器Notepad++,好像有个设置,能够显示全部的字符的。 
找到了,在: 
视图 -> 显示符号 -> 显示空格与制表符编辑器

而后就看出问题来了: 
原来错误的行数是1580行:spa

可是源码的1580行的对齐用的是点点点的空格,是和前面的几行的对齐所用的箭头表示的TAB键,是不匹配的,即代码的对齐,混用了TAB键和空格:code


而新的Python语法,是不支持的代码对齐中,混用TAB和空格的。因此出现上述错误提示了。支付宝

知道缘由了,解决起来就简单了: 
去把对应的TAB,都改成空格,统一一下对齐的风格,便可。 
在Notepad++中,去: 
设置->首选项:get

语言->以空格取代(TAB键):cmd

便可实现,对于之后每次的TAB输入,都自动转换为4个空格。源码

【总结】it

Python中遇到IndentationError,之后第一时间就要想到,是否是因为TAB键和空格混搭使用了。

估计不少人也都是此类缘由致使的。记得统一一下就好。






捐赠(Donate): 经过支付宝捐赠人民币 | Donate dollar via paypal

相关文章
相关标签/搜索