首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SyntaxError:语法在python中无效,但找不到原因

SyntaxError:语法在python中无效,但找不到原因
EN

Stack Overflow用户
提问于 2019-01-25 22:23:19
回答 1查看 166关注 0票数 4

我今年12岁,正在从事我的科学博览会项目。每天都有1000个包裹被偷,所以为了我的科学博览会项目,我正在建造一个在人们的门廊上的东西。它检测到一个包裹,当这个包裹在未经核实的情况下被取走时,它会发出非常响亮的嗡嗡声,并拍下窃贼的照片。我正在raspberry pi上用python 3编写代码。我以前从未用python编写过代码,但我知道c、html和css。我还没有添加验证部分,但它最终会在代码中的某个位置,如果输入pin,它将将引脚值更改为0或1。**我的代码给了我这个错误:

代码语言:javascript
复制
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>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-25 22:39:48

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

代码语言:javascript
复制
if expression:
   # something
   pass


while expression:
   # something
   pass


for x in sequence:
   # something
   pass


def fct():
   # something
   pass

(pass是一个空操作,它什么也不做;在您的代码最终会去的地方很有用,但还没有编写)

因此,您的代码实际上应该是:

代码语言:javascript
复制
if pin == 1:
    if result < '5':
        if result >= '10':
            GPIO.output(14, 1)

此外,要注意:

  • 您正在将result与'5‘和'10’作为字符串而不是数字进行比较;我并不是说这真的是一个错误,但您确定这些不应该是数字吗?
  • 您将永远无法到达与GPIO.output(14, 1)的界限。您检查result小于5,但之后大于10,这是不可能的。

由于您是Python的初学者,我建议您在文档中搜索您所遇到的困难。在不同的网站(如CodeAcademyw3schools )上也有关于Python的很好的教程。

我还建议您在项目中使用IDE,它支持Python。大多数情况下,他们会指出在执行代码之前所犯的语法错误。我的项目使用Pycharm (您可以免费下载Community )。您也可以设置崇高文本3,原子,视觉代码或Notepad++与适当的插件,以帮助您。

祝你的项目好运!

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54373584

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档