最新消息:20210816 当前crifan.com域名已被污染,为防止失联,请关注(页面右下角的)公众号

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

Python crifan 172669浏览 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,您需要填写昵称和邮箱!

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

网友最新评论 (22)

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