python脚本运行出现语法错误:IndentationError: unindent does not match any outer indentation level

转载 2015年07月09日 14:03:02

zz:http://www.crifan.com/python_syntax_error_indentationerror/comment-page-1/


问题】 
一个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

【问题描述】 用python写了一个函数嵌套定义的小脚本,发现运行的时候报出了如下错误: IndentationError: unindent does not match any outer ind...
  • lyhmyway
  • lyhmyway
  • 2015年02月16日 15:05
  • 6992

python中出现IndentationError:unindent does not match any outer indentation level错误

python中出现IndentationError:unindent does not match any outer indentation level今天在网上copy的一段代码,代码很简单,每行...
  • u010412719
  • u010412719
  • 2015年07月27日 19:25
  • 36096

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

一个python脚本,本来都运行好好的,然后写了几行代码,而且也都确保每行都对齐了,但是运行的时候,却出现语法错误:  IndentationError: unindent does not mat...
  • zhangkongzhongyun
  • zhangkongzhongyun
  • 2014年05月28日 09:48
  • 26215

Python运行报错IndentationError: unindent does not match any outer indentation level

程序写的好好的没有问题啊,怎么出这个错误呢? 原因:看一下程序报错的行数,该行出现了特殊字符,在Python中缩进很重要,缩进表示了代码块的范围,缩进的时候要么统一用Tab键,要么统一用等多...
  • GarfieldEr007
  • GarfieldEr007
  • 2016年05月11日 13:00
  • 2109

python报错:<IndentationError: unindent does not match any outer indentation level>

编辑环境是Sublime Text 2,编辑好程序运行时报错:     def os_type(self):                      ^ IndentationError: u...
  • q1241580040
  • q1241580040
  • 2015年10月05日 07:12
  • 602

Python文件运行出错:SyntaxError: unindent does not match any outer indentation level

缩进在Python中扮演十分重要的角色。即使在交互的Python shell中,缩进中的空格数也很重要。 遇到上述错误一般是因为缩进有问题,没有严格对齐。 首先检查是不是Tab和空格键混用(然而,...
  • rainbowchens
  • rainbowchens
  • 2016年10月20日 20:59
  • 394

【Python】Error:unident does not match any outer indentation level

#缩进问题,可以用PyCharm编辑器
  • u014019911
  • u014019911
  • 2014年03月11日 15:40
  • 1772

IDLE运行python遇到的两个问题

1. import win32com.client时提示模块不存在 原因是对应的模块没有安装,下载安装: 并重启电脑 2.unindent does not match any outer inden...
  • poinsettia
  • poinsettia
  • 2016年03月07日 15:06
  • 872

python:unindent does not match any outer indentation level

python写了个函数运行,报错:IndentationError: unindent does not match any outer indentation level百度后发现是缩进问题,有的地...
  • lxfHaHaHa
  • lxfHaHaHa
  • 2017年07月29日 12:02
  • 201

python--IndentationError:

都知道python是对格式要求很严格的,写了一些python但是也没发现他严格在哪里,今天遇到了IndentationError: unexpected indent错误我才知道他是多么的严格。 ...
  • liguo9860
  • liguo9860
  • 2011年12月16日 16:47
  • 12274
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:python脚本运行出现语法错误:IndentationError: unindent does not match any outer indentation level
举报原因:
原因补充:

(最多只允许输入30个字)