python中raspberry pi的缩进错误
我正在用我的Raspberry Pi和python创建一个运动传感器。我可以很好地打印“运动检测!”,但现在我想添加一个功能来拍摄照片。我在python中raspberry pi的缩进错误,python,python-2.x,Python,Python 2.x,我正在用我的Raspberry Pi和python创建一个运动传感器。我可以很好地打印“运动检测!”,但现在我想添加一个功能来拍摄照片。我在camera=picamera.picamera()行中遇到缩进错误。删除此行会导致下一行出现缩进错误。这是怎么回事?我定义的回调只能是一行代码吗 # coding: utf-8 import RPi.GPIO as GPIO import picamera import time GPIO.setmode(GPIO.BCM) PIR_PIN = 7
camera=picamera.picamera()
行中遇到缩进错误。删除此行会导致下一行出现缩进错误。这是怎么回事?我定义的回调只能是一行代码吗
# coding: utf-8
import RPi.GPIO as GPIO
import picamera
import time
GPIO.setmode(GPIO.BCM)
PIR_PIN = 7
GPIO.setup(PIR_PIN, GPIO.IN)
filename = 0
def MOTION(PIR_PIN):
print "Motion Detected!"
camera = picamera.PiCamera()
filename = 'image' + filenumber + '.jpg'
camera.capture(filename)
filenumber = filenumber + 1
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()
enter code here
当查看
运动
函数的缩进时,就是这样(选项卡由\t
可视化):
如您所见,打印
用空格缩进,而其余行先用3个制表符缩进,然后用3个空格缩进。因此,打印和下面的行有一个不同的缩进,这会使Python崩溃
在Python缩进中,对于缩进级别,缩进需要完全相同。因此,如果先缩进15个空格,则需要为整个函数体保持该级别
一般来说,缩进的方式应该完全一致:要么使用制表符,要么使用空格。不要两者都使用,尤其不要在同一行中使用。你在混合空格和制表符。这不是Python 3,因此无法使用您提供的代码复制错误-请正确复制粘贴:因此您使用了错误的选项卡大小,在Python 2中(如此处所示),选项卡和空格可以混合使用,但TabStop位于8个空格处。在Python3中,制表符和空格绝对不能混用。简单有效。谢谢或者更好:永远不要使用标签,句号。这里是新代码,所以不需要开始使用令人困惑的约定。@AnttiHaapala人可以自由使用他们想要的任何东西。不要把这变成一个标签与空间的讨论。可以指出的是,这一讨论非常重要
def MOTION(PIR_PIN):
print "Motion Detected!"
\t\t\t camera = picamera.PiCamera()
\t\t\t filename = 'image' + filenumber + '.jpg'
\t\t\t camera.capture(filename)
\t\t\t filenumber = filenumber + 1