前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【亲测有效】Nodepad++/Sublime Text3中Python脚本运行出现语法错误:IndentationError: unindent does not match any outer i

【亲测有效】Nodepad++/Sublime Text3中Python脚本运行出现语法错误:IndentationError: unindent does not match any outer i

作者头像
Angel_Kitty
发布2018-04-08 16:12:49
1.5K0
发布2018-04-08 16:12:49
举报

我在开发游戏的时候,发现一个python脚本,本来都运行好好的,然后写了几行代码,而且也都确保每行都对齐了,但是运行的时候,却出现语法错误: 

IndentationError: unindent does not match any outer indentation level

【解决过程】 

以下我将提供两种环境对错误进行更改:

Nodepad++:

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

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

notepad   显示空格与制表符
notepad 显示空格与制表符

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

python error line
python error line

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

1580 space and tab mixed
1580 space and tab mixed

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

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

设置 首选项
设置 首选项

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

语言 以空格取代Tab
语言 以空格取代Tab

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

Sublime Text3:

直接在View - Indentation 下的命令可控制转换

【总结】

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

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-03-14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 【解决过程】 
    • Nodepad++:
      • Sublime Text3:
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档