为什么在Python3中使用“except”是一个语法错误?

为什么在Python3中使用“except”是一个语法错误?,python,syntax,except,Python,Syntax,Except,我试图用Python 3编写一个简单的程序,根据一天中的时间打开和关闭灯光 在尝试和使用时,我不断地遇到语法错误,除了键盘中断:在while循环中。这就是错误: 除键盘中断外: ^ SyntaxError:无效语法 由于我已经通过在线文档对语法进行了双重检查,我不知道我做错了什么,我想我在这里缺少了一些理解 以下是完整的代码供参考: #!/usr/bin/python import time import datetime TimeStart = datetime.time(17, 0,

我试图用Python 3编写一个简单的程序,根据一天中的时间打开和关闭灯光

在尝试和使用时,我不断地遇到语法错误,除了键盘中断:在while循环中。这就是错误:

除键盘中断外: ^ SyntaxError:无效语法 由于我已经通过在线文档对语法进行了双重检查,我不知道我做错了什么,我想我在这里缺少了一些理解

以下是完整的代码供参考:

#!/usr/bin/python  

import time
import datetime

TimeStart = datetime.time(17, 0, 0)
TimeEnd = datetime.time(18, 30, 0)

def onoff():
    while True:
        if TimeEnd > datetime.datetime.now().time() and TimeStart < datetime.datetime.now().time():
            print("Pin 18  High")
        else:
            print("Pin 18  Low")
        except KeyboardInterrupt:
            pass
            print("Error..... Quiting.....")
            raise
            sys.exit()

time.sleep(30)   
onoff()
不能在try之外使用except语句:。。。除了:。。。代码块

因此,您可以将代码重新表述为

while True:
    try:
        if TimeEnd > datetime.datetime.now().time() and TimeStart < datetime.datetime.now().time() :
            print ("Pin 18  High")
        else:
            print ("Pin 18  Low")
    except KeyboardInterrupt:
        pass
        print("Error..... Quiting.....")
        raise
        sys.exit()
我没有试过,但基本上

用try子句包装if语句,然后 任何键盘中断都将被except语句捕获。
Exception必须跟在try块后面,Exception属于try,而不是if。看这里,请做点调查。除此之外,您不能将其添加到其他语句中。这是一个语法错误,因为只有在有try:block first将其连接到时才能使用except。