Python中出现IndentationError:unindent does not match any outer indentation level错误的解决方法

 更新时间:2020年04月18日 21:14:44   作者:27Up  
今天在网上copy的一段代码,代码很简单,每行看起来该缩进的都缩进了,运行的时候出现了如下错误,IndentationError: unindent does not match any outer indentation level,如果看起来缩进正常所有tab与空格混用就会出现这个问题

【问题】 
一个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键和空格混搭使用了。

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

下面是其他网友的补充

今天在网上copy的一段代码,代码很简单,每行看起来该缩进的都缩进了,运行的时候出现了如下错误: 


【解决过程】 

1.对于此错误,最常见的原因是,的确没有缩进。根据错误提示的行数,去代码中看了下,看起来没有什么问题呀,都有缩进,而且语法也没有错误呀。

2.仔细研究了下代码,发现真的看不出什么问题,突然想到了,把当前python脚本的所有字符(包括空格和tab字符)都显示出来看看到底有没有缩进或者是其他特殊的字符。

当前用的文本编辑器Notepad++,有个设置,可以显示所有的字符的。

在: 

视图 –> 显示符号 –> 显示空格与制表符 

这样就可以看到我们Python代码的到底有没有该缩进的都缩进了。

最终发现代码报错原因还真是出在这里,错误提示的这行看起来是缩进了,实际上确没有缩进,这就是问题的根源所在。

发现了个问题,发现copy过来的Python代码都没有进行缩进,当我们copy别人的代码时,缩进这点需要额外注意。不要看起来代码缩进了就感觉ok了,实际上是没有缩进的。

总结

使用(多行注释)三个引号的注释, 一定要注意缩进要与上下文保持一致

即同层次代码是几个缩进,就几个缩进。

报上面这个错误的原因是自己在注释'''test'''前面只有三个空格导致。

同层代码是4个空格,偏偏要写8个空格,也会报错的。 

对应的单行注释##, 则对缩进没有任何要求。

可能是三个引号是属于字符串的原因吧
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

相关文章

  • python 实现返回一个列表中出现次数最多的元素方法

    python 实现返回一个列表中出现次数最多的元素方法

    今天小编就为大家分享一篇python 实现返回一个列表中出现次数最多的元素方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • python Matplotlib数据可视化(1):简单入门

    python Matplotlib数据可视化(1):简单入门

    这篇文章主要介绍了python Matplotlib的相关资料,帮助大家入门matplotlib,绘制各种图表,感兴趣的朋友可以了解下
    2020-09-09
  • python爬取Ajax动态加载网页过程解析

    python爬取Ajax动态加载网页过程解析

    这篇文章主要介绍了python爬取Ajax动态加载网页过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • python使用hdfs3模块对hdfs进行操作详解

    python使用hdfs3模块对hdfs进行操作详解

    这篇文章主要介绍了python使用hdfs3模块对hdfs进行操作详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • 用Python实现Newton插值法

    用Python实现Newton插值法

    最近在做数值分析的作业,作业里面的小数点让计算能力本就薄弱的我雪上加霜,为了偷个小懒快速把作业完成,所以有了这篇博客。哈哈哈哈哈,让我们一起复制copy,完成作业,哈哈哈哈需要的朋友可以参考下
    2021-04-04
  • Python生成个性签名图片获取GUI过程解析

    Python生成个性签名图片获取GUI过程解析

    这篇文章主要介绍了Python生成个性签名图片获取GUI过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • 详解OpenCV中直方图,掩膜和直方图均衡化的实现

    详解OpenCV中直方图,掩膜和直方图均衡化的实现

    这篇文章主要为大家详细介绍了OpenCV中直方图、掩膜、直方图均衡化详细介绍及代码的实现,文中的示例代码讲解详细,需要的可以参考一下
    2022-11-11
  • Python TensorFlow介绍与实战

    Python TensorFlow介绍与实战

    这篇文章介绍了Python TensorFlow介绍与实战,通过本文的介绍,我们不仅了解了TensorFlow的基本概念和安装方法,还通过线性回归和卷积神经网络的实例,深入探讨了 TensorFlow 的使用技巧,TensorFlow 的强大功能和灵活性使其成为深度学习领域的重要工具,需要的朋友可以参考下
    2024-07-07
  • 使用Python对Csv文件操作实例代码

    使用Python对Csv文件操作实例代码

    这篇文章主要介绍了使用Python对Csv文件操作实例代码,非常具有实用价值,需要的朋友可以参考下
    2017-05-05
  • Flask 验证码自动生成的实现示例

    Flask 验证码自动生成的实现示例

    本文主要介绍了Flask 验证码自动生成的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-03-03

最新评论