我无法相信,但可以在python代码中混合制表符和空格:
if __name__ == '__main__':
for a in range(3): # indented with 4 spaces
print(a) # indented with 4 spaces and one tab
这背后的原因是什么?
经过测试:
注意:stackoverflow似乎更改了带空格的标签!
答案 0 :(得分:7)
这是关于Python缩进的众多神话之一。
Python实际上做的是查看行之间的相对缩进,而不是固定金额。
只要您对块的范围内的每个级别保持一致,就不关心您是使用制表符,空格还是混合。
E.g。以下是有效文件(使用[]表示空格,[t]表示选项卡)
if True:
[ ][ ][ ][ ]print ("Four spaces")
if True:
[t]print ("Tab")
[t]if True:
[t][ ][ ][ ]print ("Tab and three spaces")
if True:
[ ][t][ ]print ("Mixture")
说了这么多 - 大多数理智的人坚持4个空格作为标准缩进,就像Benevolent Dictator intended it那样。
有关详情,请参阅Python: Myths about Indentation。
答案 1 :(得分:2)
在python中引入了缩进,以确保每个编写的代码都有缩进,以便其他编码器可以正确读取它。
这并不意味着,编码员有他的自由。只要每个块保持其缩进,不同的块就可以具有不同的缩进。
例如,您可以拥有这样的工作文件,但不建议使用。
print "hello"
if True:
[TAB]print "a"
[TAB]i = 0
[TAB]if i == 0:
[TAB][SPACE][SPACE]print "b"
[TAB][SPACE][SPACE]j = i + 1
[TAB][SPACE][SPACE]if j == 1:
[TAB][SPACE][SPACE][TAB][TAB]print "c
更多阅读...... http://docs.python.org/release/2.5.1/ref/indentation.html