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

IndentationError: unindent does not match any outer indentation level

【解决过程】

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

Nodepad++:

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

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

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

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


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

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

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

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

Sublime Text3:

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

【总结】

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

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

最新文章

  1. C#中的LINQ
  2. linux 使用fdisk分区扩容
  3. 夺命雷公狗-----React---23--小案例之react经典案例todos(完成添加任务)
  4. 烂泥:NFS做存储与KVM集成
  5. iphone dev 入门实例1:Use Storyboards to Build Table View
  6. AD10 gerber生成,及导入cam350 多图详细步骤
  7. 报错:/BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit_Sim/UIKit-3512.29.5/UITableView.m:7943解决方法
  8. codeforces 552 E. Vanya and Brackets 表达式求值
  9. javaTemplates-学习笔记一
  10. kettle 数据迁移 (转)
  11. IOS NSURLRequest 设置 Header
  12. jsp页面第一句话报这个错Syntax error, insert "}" to complete
  13. CCS的文本及字体
  14. 高并发分布式系统中生成全局唯一(订单号)Id
  15. 设计 MySQL 数据表的时候一般都有一列为自增 ID,这样设计原因是什么,有什么好处?
  16. 2017年蓝桥杯省赛A组c++第6题(字符串匹配算法填空)
  17. React绑定事件动态化的实现方法
  18. CRM4.0 上传附件大小限制
  19. TLS协议工作过程;如何应用TLS/SSL协议为WEB流量提供安全
  20. Excel表格公式大全[转]

热门文章

  1. 使用MyEclipse建立working set
  2. MySQL之UNDO及MVCC、崩溃恢复
  3. mysql INSERT的几个语法 IGNORE|REPLACE|LOW_PRIORITY | DELAYED
  4. UNIX高级环境编程(10)进程控制(Process Control)- 竞态条件,exec函数,解释器文件和system函数
  5. ZooKeeper 数据结构 & 命令
  6. C# Excel操作类 ExcelHelper
  7. 乘风破浪:LeetCode真题_038_Count and Say
  8. 2.js深入(以通俗易懂的语言解释JavaScript)
  9. vlanif和vlan路由
  10. 编程算法 - 左旋转字符串 代码(C)