2016-10-23 6 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.