美文网首页
Python脚本报错expected an indented b

Python脚本报错expected an indented b

作者: robot_test_boy | 来源:发表于2021-11-25 00:10 被阅读0次

    背景

    基本上都是在Windows下pycharm中写代码,换行对齐都是使用空格。

    今天切换到Linux下,Python脚本使用tab键,看着代码行是对齐的。

    可就是执行报错expected an indented block

    之前看过一个帖子,程序员的tab和空格对齐之争,今天被自己遇到了。

    报错“expected an indented block”,即“期望一个缩进的块”,为python中的缩进问题。

    TabError: inconsistent use of tabs and spaces in indentation在缩进中使用不一致的制表符和空格。

    原理

    python中没有像C语言使用{}来表示从属关系,而是使用缩进表示上下级关系。

    检查修改

    检查下缩进不规范,少些或多些了一个空格。

    备注:要养成好习惯,不可乱用空格和tab键。之前没伤过。

    来个小插曲:使用空格比使用Tab键的工资更高

    一个叫做David Robinson的家伙根据Stack Overflow开发者调查的原始数据,进行了线性回归分析。研究发现,在控制了国家、接触编程的年数、开发人员类型和语言、教育水平、公司规模等要素后,使用空格键的程序员工资将会比使用tab键的程序员高出8.6%。

    不过,使用空格还是Tab跟工资之间的关系并不牢靠,他们确实有相关性。这并不意味着使用空格就能拿高工资,不过反过来却是成立的。那就是拿高工资的人大多都使用空格。

    在不同的编辑器里tab的长度可能不一致,所以在一个编辑器里用tab设置缩进后,在其它编辑器里看可能缩进就乱了。如果其他人用转换tab为空格的编辑器打开你写的文件,然后版本控制程序就会报冲突,非常非常麻烦。而使用空格键,任何人用任何编辑器查看代码都是对齐的

    如果代码需要压缩发布,使用空格的代码通常具有更好的压缩率。这里面的原理是信息量,使用 Tab 缩进的代码中,仍然不可避免的含有空格(运算符之间的间隔,注释等等),但使用空格的代码中根本不含有 Tab,这使得 Tab 缩进代码虽然不压缩的时候更小,但熵更高,因而压缩率较差,压缩之后反而更大。

    相关文章

      网友评论

          本文标题:Python脚本报错expected an indented b

          本文链接:https://www.haomeiwen.com/subject/stjgtrtx.html