最新消息:20190717 VPS服务器:Vultr新加坡,WordPress主题:大前端D8,统一介绍入口:关于

【已解决】Python脚本运行出现语法错误:IndentationError: unindent does not match any outer indentation level

Python crifan 63603浏览 0评论

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

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

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

notepad   显示空格与制表符

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

python error line

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

1580 space and tab mixed
而新的Python语法,是不支持的代码对齐中,混用TAB和空格的。所以出现上述错误提示了。

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

设置 首选项

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

语言 以空格取代Tab

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

【总结】

Python中遇到IndentationError,以后第一时间就要想到,是不是由于TAB键和空格混搭使用了。

估计很多人也都是此类原因导致的。记得统一一下就好。

转载请注明:在路上 » 【已解决】Python脚本运行出现语法错误:IndentationError: unindent does not match any outer indentation level

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (20)

  1. 感谢楼主
    jiaanzhuo8个月前 (04-09)回复
  2. 非常感谢!!!!!!
    默默11个月前 (01-08)回复
  3. python 这格式真特么傻逼,什么鸡巴破语言
    sbpy1年前 (2018-07-10)回复
  4. 无敌,真的是厉害了
    py2年前 (2017-12-13)回复
  5. 谢谢帮助
    啊啊啊2年前 (2017-12-02)回复
  6. 谢谢 😥
    梵意悟2年前 (2017-11-22)回复
  7. 真乃神人也
    最后的武士2年前 (2017-07-17)回复
  8. 回答的太好了,解决了问题! :mrgreen:
    Ming2年前 (2017-07-15)回复
  9. 楼主我不扶墙,就服你
    rabbit3年前 (2017-04-19)回复
  10. 谢谢楼主,帮我解决了问题!
    风花雪月3年前 (2017-01-21)回复
  11. 多谢po主,我也遇到类似问题,看了你的文章解决了。
    微云君3年前 (2016-11-27)回复
  12. 不错
    yaoelvon4年前 (2016-01-14)回复
  13. 哈哈,又找到你这儿来了,最近还好不?
    SEO方法4年前 (2015-10-21)回复
    • 哈哈,还行,欢迎多多光顾哈
      crifan4年前 (2015-10-22)回复
  14. 正解,谢谢楼主,帮了大忙了!
    monsoon5年前 (2015-04-16)回复
  15. 有帮助,很赞,谢谢分享
    小明5年前 (2015-03-16)回复
  16. 好!
    盒盒5年前 (2014-11-28)回复
  17. thank you
    henry6年前 (2014-01-17)回复
66 queries in 0.115 seconds, using 18.94MB memory