我12岁,正在从事我的Science Fair项目。每天都有成千上万的包裹被盗,因此对于我的科学博览会项目,我正在建造一种在人们家中使用的东西。它会检测到包裹,并且在未经验证的情况下取走包裹时,会发出很大的哔哔声并拍摄小偷的照片。我正在树莓派上用python 3编写代码。我以前从未用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>
答案 0 :(得分:3)
在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中搜索遇到的困难。在CodeAcademy或w3schools等不同的网站上也有关于Python的不错的教程。
我还建议您对项目使用IDE,该IDE支持Python。大多数时候,它们会指出您在执行代码之前所犯的语法错误。我在我的项目中使用Pycharm(您可以免费下载Community版本)。您还可以使用适当的插件设置Sublime Text 3,Atom,Visual Code或Notepad ++,以帮助您。
祝您的项目好运!