为什么以下代码在Python控制台(在我的情况下为2.6.5版本)中产生缩进错误?我确信以下是一段有效的代码:
if True:
print '1'
print 'indentation error on this line'
如果我在if-block和最后一次打印之间插入一个空行,则错误消失:
if True:
print '1'
print 'no error here'
我有点困惑,从我看来,空白(或只是白色空间)线条的文档应该没有任何区别。任何提示?
答案 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
的定义; if
,for
,while
,...),则执行时间。
这里: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