2016-10-23 10 views
-2

以下のコードを実行すると、インデントエラーが発生しますが、問題が見つからないようです。私はPythonには新しいので、それは明らかに明白なものだと確信していますが、私はそれを見ることができません。私はこのエラーを取得する実行するとRaspberryPi Python IndentationError:インデントブロックがあると予想されました

#Import modules to send commands to GPIO pins 
from subprocess import call 
import RPi.GPIO as gpio 
import time 

#Define function to keep script running 
def loop(): 
while True: 
    time.sleep(0.2) 

#Define function to run when interrupt is called 
def shutdown(pin): 
call('halt', shell=False) 

GPIO.setmode(GPIO.BOARD) #Set pin numbering to board numbering 
GPIO.setup(7, GPIO.IN) #Set pint 7 as input pin 
GPIO.add_event_detect(7. GPIO.RISING, callback=shutdown, bouncetime=200) #Setup inteript to look button press 

loop() 

File "/home/pi/PiSupply/softshut.py", line 8 
    while True: 
     ^
IndentationError: expected an indented block 

助けてください、私はこの上であまりにも長い費やしてきたと私はそれが参照していますインデントのエラーを見つけることができないようです。

ありがとうございます。

+1

[私が見つけたすべてのオンラインサンプル](https://docs.python.org/2/tutorial/controlflow.html#defining-functions)によれば、関数本体全体がインデントされている必要があります。関数体がインデントされていない構造体を正確に見つけたのはどこですか? –

+0

あなたが投稿したエラーは、あなたの質問に答えています... – coder

答えて

0
def loop(): 
    while True: 
     time.sleep(0.2) 

関数の後、コードをインデントする必要があります。 shutdownと同じです。

+0

ありがとう、私の日を救った、それは何か簡単だったことが分かっていた –

+0

喜びで。 –

0

Trueを押しながらインデントする必要があります。 Pythonでは、定義やループに属するコードをインデントする必要があります。 def loop()のコードは字下げする必要があります。

+0

ありがとう、私はそれがそれのような単純なものだと分かっていました。 –

0

これは、コンパイラが単語whileの前にインデントを予測したことを意味します。

関連する問題