基本的python缩进/ dedentation问题

时间:2011-06-09 17:23:28

标签: python syntax indentation

为什么以下代码在Python控制台(在我的情况下为2.6.5版本)中产生缩进错误?我确信以下是一段有效的代码:

if True:
    print '1'
print 'indentation error on this line'

如果我在if-block和最后一次打印之间插入一个空行,则错误消失:

if True:
    print '1'

print 'no error here'

我有点困惑,从我看来,空白(或只是白色空间)线条的文档应该没有任何区别。任何提示?

2 个答案:

答案 0 :(得分:5)

问题是由于使用了Python控制台,而不是Python语言。如果你把所有东西放在一个方法中,它就可以了。

示例:

>>> if True:
...     print '1'
... print 'indentation error on this line'
  File "<stdin>", line 3
    print 'indentation error on this line'
        ^
SyntaxError: invalid syntax
>>> def test():
...     if True:
...         print '1'
...     print 'no indentation error on this line'
... 
>>> test()
1
no indentation error on this line
>>> 

答案 1 :(得分:5)

控制台接受一条指令(多行,如果它是function的定义; ifforwhile,...),则执行时间。

这里:2条说明

                                          _______________
if True:                                # instruction 1  |
    print '1'                           # _______________|
print 'indentation error on this line'  # instruction 2  |
                                          ----------------

这里:由blanck线分隔的2条指令; 一条空白行就像你点击 =&gt;执行单指令

if True:
    print '1'         # instruction 1
[enter]
print 'no error here' # instruction 1