提示错误:IndentationError:预期缩进块

时间:2013-03-27 16:12:08

标签: python

我是python的新手,我在这里练习(http://www.learnpython.org/page/Loops)。对于以下代码:

   numbers = [
        951, 402, 984, 651, 360, 69, 408, 319, 601, 485, 980, 507, 725, 547, 544, 
        615, 83, 165, 141, 501, 263, 617, 865, 575, 219, 390, 984, 592, 236, 105, 942, 941, 
        386, 462, 47, 418, 907, 344, 236, 375, 823, 566, 597, 978, 328, 615, 953, 345, 
        399, 162, 758, 219, 918, 237, 412, 566, 826, 248, 866, 950, 626, 949, 687, 217, 
        815, 67, 104, 58, 512, 24, 892, 894, 767, 553, 81, 379, 843, 831, 445, 742, 717, 
        958, 609, 842, 451, 688, 753, 854, 685, 93, 857, 440, 380, 126, 721, 328, 753, 470, 
        743, 527
    ]

    # your code goes here
    for number in numbers:
        if number <= 237 and number%2 == 0:
            print number

我遇到了以下问题:

Traceback (most recent call last):
  File "/base/data/home/apps/s~learnpythonjail/2.365841894475711898/main.py", line 75, in execute_python
    exec(code, {})
  File "<string>", line 14
    print number
        ^
IndentationError: expected an indented block

我可以知道如何解决它吗?

3 个答案:

答案 0 :(得分:5)

错误表示print没有缩进超出前一行if行的级别。

如果在您的编辑器中看起来print行无论如何都是正确缩进的,那么您将不一致地混合制表符和空格。用空格替换所有选项卡以进行更正。

您可以将大多数编辑器配置为仅使用空格 进行缩进;这是Python styleguide (PEP 8)推荐的内容:

  

标签或空格?

     

切勿混合标签和空格。

     

缩进Python最流行的方法是仅使用空格。第二种最流行的方式是仅使用标签。使用制表符和空格混合缩进的代码应转换为仅使用空格。当使用-t选项调用Python命令行解释器时,它会发出有关非法混合制表符和空格的代码的警告。使用-tt时,这些警告会出错。强烈推荐这些选项!

     

对于新项目,强烈建议仅使用空格。大多数编辑都具有使这很容易做到的功能。

答案 1 :(得分:2)

以下是您的代码在编辑器中的显示内容,该编辑器显示带有标签的所有空白字符(标签大小设置为4):

enter image description here

小点是空格字符,箭头是制表符。如其他答案所述,混合标签和空格是一个坏主意。上面的代码可能看起来不错,但看看如果将标签大小更改为8个字符会发生什么:

enter image description here

这是您看到的错误的根本原因。当您混合制表符和空格时,您在编辑器中看到的缩进可能与Python解释器看到的缩进不同。

答案 2 :(得分:1)

我重现了你的情况:if语句前面有一个表,打印前有8个空格。请仅使用空格。