2013-04-20 7 views
0

Я новичок в python и совершенно незнакомец с отступом python. Я получаю синтаксическую ошибку всякий раз, когда я пытаюсь запустить следующий код, в чем проблема с ним? Спасибо, уже.Ошибка синтаксиса в скрипте python малины pi

#!/usr/bin/python 

import RPi.GPIO as GPIO 
import time 

def RC_Analog (Pin): 
counter = 0 
# Discharge capacitor 
GPIO.setup(Pin, GPIO.OUT) 
GPIO.output(Pin, GPIO.LOW) 
time.sleep(0.1) 
GPIO.setup(Pin, GPIO.IN) 
# Count loops until voltage across capacitor reads high on GPIO 
while(GPIO.input(Pin)==GPIO.LOW): 
    counter =counter+1 
return counter 

# Set up header pin 11 as an input 
triggerPin = 25; 
echoPin = 8; 
GPIO.setmode(GPIO.BCM) 
GPIO.setup(triggerPin, GPIO.OUT) 
GPIO.setup(echoPin, GPIO.IN) 

while True: 
GPIO.output(triggerPin, False) 
time.sleep(0.000002) 
GPIO.output(triggerPin, True) 
time.sleep(0.00001) 
GPIO.output(triggerPin, False) 
print RC_Analog(echoPin)/58 
time.sleep (0.25) 
+1

Можете ли вы показать нам фактическое сообщение об ошибке? – Volatility

+0

SyntaxError сообщит вам, в какой строке проблема. – Aya

+0

def? RC_Analog (Pin) выделяет вопрос, отмеченный областью – mozcelikors

ответ

0

Если вы получаете

ImportError: No module named RPi.GPIO 

вам необходимо установить модуль первого

https://pypi.python.org/pypi/RPi.GPIO

+0

'ImportError' отличается от' SyntaxError'. –

+0

Я сказал синтаксическую ошибку, lol – mozcelikors

+3

Ну, в защиту Джона Брауна, вы довольно расплывчаты в точности о том, какую ошибку вы получаете. –

1

Вы действительно используете Python для запуска сценария? Я получаю сообщение об ошибке в том же месте, если я пытаюсь сделать его источником как сценарий оболочки:

. test.py

Убедитесь, что вы запустите его с питоном:

python test.py

или сделать его исполняемым : chmod u+x test.py и запустить его с: ./test.py

+0

Ваш ответ полезен, но ничего я этого не делал. Спасибо, в любом случае. Оказалось, что проблема была в пробеле utf-8. – mozcelikors

1

def?RC_Analog(Pin) выдвигает на первый план вопрос, отмеченную область

Если вы видите код, как def RC_Analog(Pin), но сообщение об ошибке синтаксиса буквально печатает def?RC_Analog(Pin), это звучит, как у вас есть нечто иное, чем ASCII символ пробела между def и RC_Analog, как Unicode non-breaking space, или какой-либо другой символ Unicode, который похож на пробел.

Замена его пробелом, набранным с клавиатуры, должна решить проблему.

При написании сценария Python лучше всего использовать только 7-битный набор символов ASCII. Некоторые текстовые редакторы позволят вам установить это в настройке, другие позволят вам выбрать кодировку при сохранении.

Если вы используете Блокнот Windows, выберите тип «ANSI» при сохранении.

Смежные вопросы