这是代码
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
我从一本书中得到了这个代码,我不知道出了什么问题...
答案 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):