2014-09-07 3 views
1

Я настраиваю мой малиновый pi с датчиком движения. Я использую простой код кода python от modmypie. Я запускаю код из окна терминала, но получаю SyntaxError: invalid syntax на print (“Motion Detected!”). Это такая простая строка, но не может понять, в чем проблема.Python ошибка синтаксиса печати rasberry pi

# coding: utf-8  

import RPi.GPIO as GPIO 

import time 

GPIO.setmode(GPIO.BCM) 

PIR_PIN = 7 

GPIO.setup(PIR_PIN, GPIO.IN) 

def MOTION(PIR_PIN): 

    print “Motion Detected!” 

print “PIR Module Test (CTRL+C to exit)” 

time.sleep(2) 

print “Ready” 

try: 

    GPIO.add_event_detect(PIR_PIN, GPIO.RISING, callback=MOTION) 

    while 1: 

     time.sleep(100) 

except KeyboardInterrupt: 

    print “ Quit” 

    GPIO.cleanup() 
+0

Подождите ... вы говорите, что исключение выражается в 'print (« Motion Detected! »)', Но ваш код говорит 'print 'Motion Detected!" '. Ваш вопрос помечен Python 2.7, но мой RP работает на Python 3 ... вы можете проверить это и переключить интерпретатор, если это необходимо. – TidB

ответ

5

Возможно, это связано с кавычками, которые вы используете.

Рассматривая код, похоже, что вы используете кавычки юникода. В частности, вы используете символы Unicode 0x201C и 0x201D - «левая двойная кавычка» и «правая двойная кавычка».

“ ” 

Вместо этого, вы должны использовать обычные ASCII кавычки, который имеет ASCII-код/​​Юникода 0x22:

" " 

Как вы пишете код? Если вы используете какое-то программное обеспечение для обработки текстов (Microsoft Word, Libreoffice) для написания своего кода, они часто будут автокорректировать обычные кавычки в причудливые юникодные. Многие веб-сайты и платформы для блогов также будут делать то же самое, поскольку регулярные кавычки являются более удобными для типографики и, как правило, то, что автор хочет (если они не программисты!)

Если вы используете обычный текстовый редактор (блокнот , Sublime Text и т. Д.), Вы не должны сталкиваться с этой проблемой.


В качестве альтернативы, вы можете, возможно, путает вместе Python 2 и Python 3.

Если вы используете Python 2, ваши операторы печати должны выглядеть следующим образом:

print "Text" 

Если вы» re running Python 3, ваши заявления на печать должны выглядеть так:

print("Text") 

Вы можете проверить w в вашей версии, запустив python --version из командной строки.

+0

Это сработало! Я скопировал и вставил код с веб-сайта. – user2242044

+0

Вау, мне нравится это решение: D – TidB

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

  • Нет связанных вопросов^_^