IndentationError:预期缩进块10

时间:2014-04-25 22:07:38

标签: python raspberry-pi indentation

这是代码

import RPi.GPIO as GPIO
import time


GPIO.setmode(GPIO.BCM)
GPIO.setup(2, GPIO.IN)


while True:
  if GPIO.input(2) == False:
print ("marshmallow makes a good input")
  time.sleep(0.5)



File "marshmallow.py" , line 11
   print ("marshmallow makes a good input")
       ^
IndentationError: expected an indented block

我从一本书中得到了这个代码,我不知道出了什么问题...

2 个答案:

答案 0 :(得分:1)

if块(或任何块)中的代码必须比打开块的语句缩进。在这种情况下,这意味着您的代码应如下所示:

while True:
  if GPIO.input(2) == False:
    print ("marshmallow makes a good input")
  time.sleep(0.5)

或者也许是这样:

while True:
  if GPIO.input(2) == False:
    print ("marshmallow makes a good input")
    time.sleep(0.5)

从您发布的代码中,您不希望这两个中的哪一个(尽管它可能是前者 - 您可能希望在每次循环迭代时都处于休眠状态)。

另请注意,在Python代码中,每个级别的缩进最好由4个空格组成,而不是2个 - 所以理想情况下,此代码如下所示:

while True:
    if GPIO.input(2) == False:
        print ("marshmallow makes a good input")
    time.sleep(0.5)

答案 1 :(得分:0)

while True:
    if GPIO.input(2):
        print ("marshmallow makes a good input")
    time.sleep(0.5)

Python使用indentation to group statements。 if语句需要在下面缩进的语句(或语句)。如果print是Truthy,则会执行GPIO.input(2)语句。


请注意if GPIO.input(2) == False不被视为Pythonic。通常的写作方式是

if not GPIO.input(2):