基本python缩进/缩进问题

基本python缩进/缩进问题,python,syntax,indentation,Python,Syntax,Indentation,为什么下面的代码在Python控制台中产生缩进错误(在我的例子中是2.6.5版)?我确信以下代码是有效的: if True: print '1' print 'indentation error on this line' 如果我在If块和上次打印之间插入一个空行,则错误消失: if True: print '1' print 'no error here' 我有点困惑,从文档来看,空白(或只有空白)行不应该有任何区别。有什么提示吗?问题是由于使用了Python控制台,而不

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

if True:
    print '1'
print 'indentation error on this line'
如果我在If块和上次打印之间插入一个空行,则错误消失:

if True:
    print '1'

print 'no error here'

我有点困惑,从文档来看,空白(或只有空白)行不应该有任何区别。有什么提示吗?

问题是由于使用了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”
... 打印“此行缩进错误”
文件“”,第3行
打印“此行缩进错误”
^
SyntaxError:无效语法
>>>def test():
...     如果为真:
...         打印“1”
...     打印“此行无缩进错误”
... 
>>>测试()
1.
这行没有缩进错误
>>> 

控制台一次接受一条指令(如果它是
函数的定义,则多行;
如果
对于
,…)执行

这里:2个说明

                                          _______________
if True:                                # instruction 1  |
    print '1'                           # _______________|
print 'indentation error on this line'  # instruction 2  |
                                          ----------------
此处:2条说明,用白线隔开白线类似于按enter键执行单个指令

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

请重试第一个代码段(从问题中复制并粘贴)。它没有给出一个错误。啊,你是在交互式解释器中这样做的吗?@Sven Marnach:在控制台中,是的,它给出了。第二次打印是“…”缩进的,因为它仍然是自动缩进的。谢谢,这是我需要的。这个问题的动机是一个PythonIDE的行为,这会导致交互工作很麻烦。感谢您的解释,现在我知道如何填写错误报告:)