Python 缩进错误:意外缩进…令人沮丧
我对Python脚本非常陌生,正在编写一个脚本,当我的Raspberry Pi3达到特定的温度时打开风扇。我整天都在试着调试我的代码,结果发现我不知道出了什么问题。这是我的密码:Python 缩进错误:意外缩进…令人沮丧,python,Python,我对Python脚本非常陌生,正在编写一个脚本,当我的Raspberry Pi3达到特定的温度时打开风扇。我整天都在试着调试我的代码,结果发现我不知道出了什么问题。这是我的密码: import os import sys import signal import subprocess import atexit import time from time import sleep import RPi.GPIO as GPIO pin = 18 maxTMP = 60 def setup()
import os
import sys
import signal
import subprocess
import atexit
import time
from time import sleep
import RPi.GPIO as GPIO
pin = 18
maxTMP = 60
def setup():
GPIO.setmode(GPIO.BCM)
GPIO.setup(pin, GPIO.OUT)
GPIO.setwarnings(False)
return()
def setPin(mode):
GPIO.output(pin, mode)
return()
def exit_handler():
GPIO.cleanup()
def FanON():
SetPin(True)
return()
def FanOFF():
SetPin(False)
return()
try:
setup()
while True:
process = subprocess.Popen('/opt/vc/bin/vcgencmd measure_temp',stdout =
subprocess.PIPE,shell=True)
temp,err = process.communicate()
temp = str(temp).replace("temp=","")
temp = str(temp).replace("\'C\n","")
temp = float(temp)
if temp>maxTMP:
FanON()
else:
FanOFF()
sleep(5)
finally:
exit_handler()
这是我的错误:
文件“/home/pi/Scripts/run fan.py”,第36行
尽管如此:
^
缩进错误:意外缩进
我已经尽可能地缩进了。我需要帮助
谢谢 我想先说一句,缩进应该用四个空格。如果你这样做了,你会更容易看到像你在这里遇到的问题。如果您使用像Spyder或PyCharm这样的IDE,则有一些设置会自动为您突出显示缩进问题(无论您要使用多少空格) 也就是说,当前的缩进方案是每个缩进一个空格,您希望用以下内容替换底部块:
try:
setup()
while True:
process = subprocess.Popen('/opt/vc/bin/vcgencmd measure_temp',stdout =
subprocess.PIPE,shell=True)
temp,err = process.communicate()
temp = str(temp).replace("temp=","")
temp = str(temp).replace("\'C\n","")
temp = float(temp)
if temp>maxTMP:
FanON()
else:
FanOFF()
sleep(5)
如果您在原始代码中使用了四个空格而不是一个空格,那么它将如下所示:
try:
setup()
while True:
process = subprocess.Popen('/opt/vc/bin/vcgencmd measure_temp',stdout =
subprocess.PIPE,shell=True)
temp,err = process.communicate()
temp = str(temp).replace("temp=","")
temp = str(temp).replace("\'C\n","")
temp = float(temp)
if temp>maxTMP:
FanON()
else:
FanOFF()
sleep(5)
这里还有另一个问题,那就是您的
while True
块当前将永远不会退出(可能您想在某个地方使用break
语句)。我认为setup()
和while True
没有对齐。也许它应该从同一点开始。在中尝试一个空格,而在中为True
以查看错误是否更改或是否有效。如果使用较大的缩进(通常为4)。这将使您更容易发现缩进的位置。您是否阅读了错误消息?它说第36行缩进太多了。setup()
之后的所有内容都缩进了一级。而且return
不是函数调用。不要在后面加括号。(将return()
替换为return
)。