除了python 3中的systax错误

时间:2018-08-06 10:47:56

标签: python syntax except

我正在尝试编写一个简单的程序,该程序将使用Python 3根据一天中的时间打开和关闭灯。

尝试在except KeyboardInterrupt:循环中使用while时,我不断收到语法错误。这是错误:

except KeyboardInterrupt: ^ SyntaxError: invalid syntax

由于我在在线文档中仔细检查了语法,因此我对自己在做错的事情不知所措,并且我想这里缺少一些了解。

这是完整的代码供参考:

#!/usr/bin/python  

import time
import datetime



#set the start and end times you want the pin to be high
TimeStart = datetime.time(17,0,0)
TimeEnd =  datetime.time(18,30,0)

#Define main fuction 
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:
            # do nothing here
            pass

            print ("Error..... Quiting.....")

            raise

            sys.exit()

time.sleep(30)   
onoff()

非常感谢!

1 个答案:

答案 0 :(得分:1)

您不能在except代码块之外使用try:....except...语句。

https://docs.python.org/3.7/tutorial/errors.html#handling-exceptions

所以您可以将代码改写为

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:
        # do nothing here
        pass

        print ("Error..... Quiting.....")

        raise

        sys.exit()

我还没有尝试过,但是本质上,

  • try子句包装if语句,然后
  • KeyboardInterrupt语句将捕获任何except