https://blog.csdn.net/zxy131072/article/details/86147031
在不同的编辑器里tab的长度可能不一致,所以在一个编辑器里用tab设置缩进后,在其它编辑器里看可能缩进就乱了。空格不会出现这个问题,因为空格就占一个字符的位置。Tab在ASCII码中,编码是9,而空格是32。其实,很多IDE对Tab键做了各种各样的优化,其中有一条就是,将Tab键展开为为空格,也就是说,当你按下Tab的时候,IDE实际上帮你把一个「9」转换成了四个(或者八个)「32」。但是要注意,不是所有的IDE都帮你做了这样的工作!既然Tab在不同的环境下展现不一样,而空格却永远都是一样的。对于一些细致排版缩进来说(比如说想把每一行的注释都对齐),用空格也更加精确。这样看起来,确实是用空格来写代码要好于用Tab。
简单来说, 因为 python 用缩进来取代了 {} , 而空格或是 tab 都是合乎语法的缩进, 但因为空格和 tab 都是看不到的, 所以, 为了避免有人时而用 tab, 时而用空格来做缩进而做成了 bug, 所以, 在软规范里, 大家都约定用空格做缩进.如果你还想问为甚麼要约定用空格而不用 tab 呢 ? 那是因为不同的编辑器会对 tab 进行不一致的距离演译, 而用空格的话, 就不会有这个问题。
--python3不允许混合使用space和tab;
--python2倾向于将混合使用的space和tab转换为唯一的space;
unexpected indent问题,可以考虑以下几个解决办法:
1.检查是否不应该使用空格的地方使用了空格或Tab,检查是否有缩进,缩进量是否对,缩进和空格是否有混用。
2.注释有时候也会影响,所以注释的缩进也应引起注意。
3.尤其对于缩进和空格是否有混用,可以用文本编辑器Notepad++把当前python脚本的所有空格或Tab字符都显示出来查看。
来源:oschina
链接:https://my.oschina.net/u/4313927/blog/3361922