python:为什么“IndentationError:预期一个缩进块”为这段代码?

问题描述:

参考Listing 9. Iteration and a dictionarypython:为什么“IndentationError:预期一个缩进块”为这段代码?

>>> d = {0: 'zero', 3: 'a tuple', 'two': [0, 1, 2], 'one': 1} 
>>> for k in d.iterkeys(): 
... print(d[k]) 
    File "<stdin>", line 2 
    print(d[k]) 
     ^
IndentationError: expected an indented block 

为什么?

+0

呀,不信任该网页上的代码,如cwallenpoole指出这是充满了错误。 – agf

+0

只是感到困惑的方式,有人投票否决了我的问题。有什么意义?如果你投下来,至少给一个理由。 – q0987

+1

有人猜测为什么downvotes(没有从我)1.你没有解释你试图解决这个问题。这是最大的一个 - _show努力_是对SO提出问题的核心规则。 2.一般而言,描述性文字很少。来自“简明英汉词典”这个头衔与你所犯的错误无关。这个错误似乎是自描述性的。 5.问题非常基本。 – agf

使用Python解释即使,你要确保你有一些缩进的代码的新块。

此:

>>> for k in d.iterkeys(): 
... print(d[k]) 

应该是这样的:

>>> for k in d.iterkeys(): 
...  print(d[k]) 

顺便说一句:这个链接在应该是什么样的预期输出,可能还有一些拷贝/的一些误区粘贴问题?

Python 3没有iterkeys。只需使用:

for k in d: 
    print(d[k]) 

甚至更​​好:

for v in d.values(): 
    print(v) 
+0

有一个错字。正确的行是:'for v in d.values():' – q0987

+0

@ q0987 ok,fixed, – JBernardo