SyntaxError: syntax invalid in python but can't find the cause

SyntaxError: syntax invalid in python but can't find the cause

我今年 12 岁,正在从事我的 Science Fair 项目。每天都有 1000 多个包裹被盗,所以为了我的科学博览会项目,我正在建造一个可以出现在人们门廊上的东西。它检测到一个包裹,当包裹在未经验证的情况下被取走时,它会发出非常响亮的哔哔声并拍下小偷的照片。我正在 raspberry pi 上编写 python 3 中的代码。我以前从未用 python 编写过代码,但我知道 c 和 html 以及 css。我还没有添加验证部分,但最终会在代码中的某个地方,如果输入 PIN,它会将 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>

在Python中,由于声明块时没有括号,我们依靠缩进和标点符号。 : 符号用于在 if、while、for、def 和 class 语句的情况下开始一组语句的缩进。

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 的初学者,我建议您在 documentation the things you struggle with. There are also nice tutorials on Python on different websites such CodeAcademy or w3schools.

中搜索

我还建议您为您的项目使用 IDE,一个支持 Python 的项目。大多数时候,他们会在执行代码之前指出您犯的语法错误。我在我的项目中使用 Pycharm(您可以免费下载社区版)。您还可以使用合适的插件来设置 Sublime Text 3、Atom、Visual Code 或 Notepad++。

祝你项目顺利!