基本python缩进/缩进问题
为什么下面的代码在Python控制台中产生缩进错误(在我的例子中是2.6.5版)?我确信以下代码是有效的:基本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控制台,而不
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的行为,这会导致交互工作很麻烦。感谢您的解释,现在我知道如何填写错误报告:)