Python 打印语法错误 Raspberry Pi

1 投票
1 回答
1643 浏览
提问于 2025-04-20 07:50

我正在设置我的树莓派,想要连接一个运动传感器。我使用的是来自modmypie的一些简单的Python代码。我在终端窗口运行这段代码,但遇到了一个错误,提示SyntaxError: invalid syntax,出现在print (“Motion Detected!”)这一行。这行代码看起来很简单,但我就是搞不清楚问题出在哪里。

# 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()

1 个回答

5

这可能是因为你使用的引号有问题。

从代码来看,你似乎在用 Unicode 引号。具体来说,你用的是 Unicode 字符 0x201C 和 0x201D——分别是“左双引号”和“右双引号”。

“  ”

你应该使用普通的 ASCII 引号,它的 ASCII/Unicode 代码是 0x22:

"  "

你是怎么写代码的?如果你用的是某种文字处理软件(比如 Microsoft Word 或 Libreoffice)来写代码,它们通常会把普通引号自动改成那种花哨的 Unicode 引号。很多网站和博客平台也会这样做,因为普通引号在排版上更好看,通常也是作者想要的(只要他们不是程序员!)

如果你用的是普通的文本编辑器(比如记事本、Sublime Text 等),你就不会遇到这个问题。


另外,你可能把 Python 2 和 Python 3 搞混了。

如果你在用 Python 2,你的打印语句应该是这样的:

print "Text"

如果你在用 Python 3,你的打印语句应该是这样的:

print("Text")

你可以通过在命令行运行 python --version 来检查你安装的是哪个版本。

撰写回答