Python 为什么建议我用空格替换选项卡?

Python 为什么建议我用空格替换选项卡?,python,Python,我在一些python教程中读到,使用空格比使用制表符更好 这是PEP 008风格指南的一部分 我会直接引用你的话来回答你的问题 One of Guido's key insights is that code is read much more often than it is written. The guidelines provided here are intended to improve the readability of code and make it consisten

我在一些python教程中读到,使用空格比使用制表符更好

这是PEP 008风格指南的一部分

我会直接引用你的话来回答你的问题

One of Guido's key insights is that code is read much more often than it is 
written. The guidelines provided here are intended to improve the readability of 
code and make it consistent across the wide spectrum of Python code. As PEP 20 
says, "Readability counts".

这是PEP 008风格指南的一部分

我会直接引用这句话来回答你的问题

One of Guido's key insights is that code is read much more often than it is 
written. The guidelines provided here are intended to improve the readability of 
code and make it consistent across the wide spectrum of Python code. As PEP 20 
says, "Readability counts".
统一性

此外,选项卡可以是多个长度(视觉上),而空间始终是一个空间

查看有关Python样式的更多信息。

Uniformness

此外,选项卡可以是多个长度(视觉上),而空间始终是一个空间


查看有关Python样式的更多信息。

因为Python对空格敏感-如果一行有四个空格,下一行有一个制表符,Python将不会将它们视为缩进相同,这会导致编译错误,或者更糟糕的是,代码以您不希望的方式执行。因为它们在你看来是一样的,所以你很难区分它们之间的区别


因此,请将编辑器设置为不使用制表符,这样您就可以相信自己的眼睛。

因为python对空格敏感-如果一行有四个空格,下一行有一个制表符,python将不会将它们视为缩进相同,这会给您带来编译错误,甚至更糟的是,代码以您不希望的方式执行。因为它们在你看来是一样的,所以你很难区分它们之间的区别


因此,请将编辑器设置为不使用选项卡,这样您就可以信任自己的眼睛。

因为这是社区标准

实际上,Guido Van Rossum,但社区作为一个整体更喜欢空间。如果您想共享代码,标准尤其有用

就这样。空格和制表符都有优点,但坚持标准往往比两者都重要

空间的一些优势:

  • 空间很少被设计糟糕的软件破坏
  • 有些对齐代码的方式在使用选项卡时不再有效
  • 如果在具有不同制表位的编辑器之间移动代码,缩进会更加一致

等等,因为这是社区标准

实际上,Guido Van Rossum,但社区作为一个整体更喜欢空间。如果您想共享代码,标准尤其有用

就这样。空格和制表符都有优点,但坚持标准往往比两者都重要

空间的一些优势:

  • 空间很少被设计糟糕的软件破坏
  • 有些对齐代码的方式不再在使用选项卡时工作
  • 如果在具有不同制表位的编辑器之间移动代码,缩进会更加一致

等等。

相关:为什么这个问题以“主要基于意见”而不是重复的形式结束?从搁置的解释来看,“……对这个问题的回答几乎完全基于观点,而不是事实、参考资料或具体的专业知识。”事实上,正确的答案是基于具体的事实和参考资料——PEP8。也许我会多想一想这些事情,因为我最近刚刚获得了接近的投票权,但不要那么快地选择其他人选择的结束理由,因为其他人都在选择它。相关:为什么这个问题以“主要基于意见”而不是重复的方式结束?从搁置的解释来看,“……对这个问题的回答几乎完全基于观点,而不是事实、参考资料或具体的专业知识。”事实上,正确的答案是基于具体的事实和参考资料——PEP8。也许我会多想一想这些事情,因为我最近刚刚获得了接近的投票权,但不要因为其他人都在选择,就这么快选择关闭的原因。如果谁否决了我,谁愿意解释这个答案的错误,我真的很喜欢。PEP 008风格的指导方针说“本文档给出了Python代码的编码约定,该代码包含Python主发行版中的标准库”(重点补充)。本指南专门针对标准库,而不是所有编写的Python代码。如果否决我的人愿意解释这个答案的错误,我会非常喜欢。PEP 008风格的指南说“本文档给出了主要Python发行版中包含标准库的Python代码的编码约定”(重点已添加)。本指南专门针对标准库,而不是所有编写的Python代码。请切换“制表符”和“空格”“同样的论点也适用。这没有多大意义,尤其是如果你有一个好的编辑。令人尴尬的是,这个答案在完全错误的情况下有4张赞成票,而在完全正确的情况下,其他每个答案都有0分或-1分。这个答案事实上是正确的。Python认为制表符相当于8个空格。因此,如果在编辑器中将制表位设置为4,使行缩进4个空格和行缩进1个制表位看起来像是对齐的,就Python而言,它们不会对齐。@kindall阅读Veedrac的评论。“将制表符切换到空格,同样的参数也适用”,但问题是我们遵循PEP8风格的指导原则。这就是为什么我们使用4个空格而不是所有标签。我并不是建议使用标签和空格的混合。我只是说,这并不能解释为什么建议在一个选项卡上使用4个空格。(唯一的解释是PEP8/与Python风格指南的一致性)切换“制表符”和“空格”,同样的参数也适用。这没有多大意义,尤其是如果你有一个好的编辑。令人尴尬的是,这个答案在完全错误的情况下有4张赞成票,而在完全正确的情况下,其他每个答案都有0分或-1分。这个答案事实上是正确的。Python认为制表符相当于8个空格。因此,如果在编辑器中将制表位设置为4,则行缩进4个空格,行缩进1个制表位