SyntaxError: синтаксис недопустим в Python, но не может найти причину - PullRequest
0 голосов
/ 26 января 2019

Мне 12 лет, и я работаю над проектом научной ярмарки.Ежедневно крадут тысячи упаковок, поэтому для своего научного выставочного проекта я создаю вещь, которая идет на веранды людей.Он обнаруживает посылку и, когда посылка снята без проверки, очень громко издает звуковой сигнал и фотографирует вора.Я пишу код в Python 3 на моем Raspberry Pi.Я никогда не программировал на python, но знаю c, html и css.Я еще не добавил часть проверки, но в конечном итоге это будет где-то в коде, и при вводе PIN-кода значение пин-кода изменится на 0 или 1.** Мой код дает мне эту ошибку:

if pin == 1
          ^
SyntaxError: invalid syntax**



from Bluetin_Echo import Echo
import RPi.GPIO as GPIO
import time
import nexmo
import picamera

GPIO.setup(40,GPIO.OUT)
pin = 1
TRIGGER_PIN = 38
ECHO_PIN = 36
result = echo.read('in')
alarm = 40
speed_of_sound = 315

echo = Echo(TRIGGER_PIN, ECHO_PIN, speed_of_sound)

if pin == 1
    if result < '5'
        if result >= '10'
            GPIO.output(14, 1)
<code>

1 Ответ

0 голосов
/ 26 января 2019

В Python, поскольку при объявлении блока нет скобок, мы полагаемся на отступ и пунктуацию. Символ : используется для запуска набора отступов в операторах if, while, for, def и операторов класса.

if expression:
   # something
   pass


while expression:
   # something
   pass


for x in sequence:
   # something
   pass


def fct():
   # something
   pass

(pass - это нулевая операция, она ничего не делает; полезна в тех местах, где ваш код в конечном итоге пойдет, но еще не был написан)

Итак, ваш код должен быть:

if pin == 1:
    if result < '5':
        if result >= '10':
            GPIO.output(14, 1)

Кроме того, позаботьтесь о том, чтобы:

  • Вы сравниваете result с '5' и '10' как строки, а не как числа; Я не говорю, что это действительно ошибка, но вы уверены, что это не должны быть цифры?

  • Вы никогда не достигнете линии с GPIO.output(14, 1). Вы отмечаете, что result меньше 5, но позже больше 10, что невозможно.

Поскольку вы новичок в Python, я рекомендую вам найти в документации то, с чем вы боретесь. Есть также хорошие учебники по Python на разных сайтах, таких как CodeAcademy или w3schools .

Я также рекомендую вам использовать IDE для своих проектов, поддерживающую Python. Большую часть времени они будут указывать на синтаксические ошибки, которые вы делаете перед выполнением кода. Я использую Pycharm для своих проектов (вы можете скачать версию для сообщества бесплатно). Вы также можете настроить Sublime Text 3, Atom, Visual Code или Notepad ++ с помощью соответствующих плагинов, которые помогут вам.

Удачи в вашем проекте!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...