python上的语法无效

时间:2015-01-27 01:40:03

标签: python syntax-error

我的raspi的摊位,我得到一个恼人的语法

`#!/usr/bin/python

print 'ACTIVATED'

import RPi.GPIO as GPIO ## Import GPIO library

GPIO.setmode(GPIO.BOARD) ## Use board pin numbering
GPIO.setup(40, GPIO.IN) ## Setup GPIO Pin 40 to OUT
GPIO.input(40) ## Turn on GPIO pin 40
for x in xrange(10):
if(GPIO.input(40) == 100GPIO.input(40)  
GPIO.input(40) ## Turn on GPIO pin 40
      print ('CHEESE')

上面以粗体显示的部分是问题,这是语法错误

File "./gid.py", line 11
if(GPIO.input(40) == 100GPIO.input(40) 
                           ^
SyntaxError: invalid syntax

我是编码新手

2 个答案:

答案 0 :(得分:2)

您在if之后错过了冒号,我认为您的意思是if input is 100

#!/usr/bin/python
print('ACTIVATED')

import RPi.GPIO as GPIO ## Import GPIO library

GPIO.setmode(GPIO.BOARD) ## Use board pin numbering
GPIO.setup(40, GPIO.IN) ## Setup GPIO Pin 40 to OUT
GPIO.input(40) ## Turn on GPIO pin 40

for x in xrange(10):
  if GPIO.input(40) == 100: # you're missing a colon in your if statement
    GPIO.input(40)
    GPIO.input(40) ## Turn on GPIO pin 40
    print('CHEESE')

答案 1 :(得分:1)

所以有一些问题。评论没有意义。您希望引脚40成为输入还是输出?

GPIO.setup(40, GPIO.IN) ## Setup GPIO Pin 40 to OUT

如果你真的希望它是一个输出,它应该是:

GPIO.setup(40, GPIO.OUT) ## Setup GPIO Pin 40 to OUT

下一行不会打开引脚40.它会读取引脚40并返回0或1.如果不将其赋值给变量,则返回值会丢失。

GPIO.input(40) ## Turn on GPIO pin 40

你可能想要的是:

GPIO.output(40,1) ## Turn on GPIO pin 40

下一行也是一团糟:

if(GPIO.input(40) == 100GPIO.input(40)  
GPIO.input(40) ## Turn on GPIO pin 40
      print ('CHEESE')

不确定你真正想要的是什么,但可行的方法是:

if GPIO.input(40) == 1:  # Read what is currently being output
    GPIO.output(40,0)    #   and turn it off if it is on, perhaps?

请注意,Python if语句以冒号结尾,并且不需要围绕比较使用括号。

您可以查看:http://sourceforge.net/p/raspberry-gpio-python/wiki/Examples/