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

2024-09-30 06:15:27 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

except KeyboardInterrupt:
^
SyntaxError: invalid syntax

由于我已经通过在线文档对语法进行了双重检查,我不知道我做错了什么,我想我在这里缺少了一些理解

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

#!/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()

Tags: import程序datetimetime时间pinnowprint
1条回答
网友
1楼 · 发布于 2024-09-30 06:15:27

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

https://docs.python.org/3/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:
        pass
        print("Error..... Quiting.....")
        raise
        sys.exit()

我没有试过,但基本上

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

相关问题 更多 >

    热门问题