我正在尝试使用取消功能对警报进行编程。用户输入(通过语音)唤醒时间,然后警报程序将实际时间与唤醒时间进行比较。我有一个取消功能,可以在警报响起之前将其取消-语音输入称为“ userInput()。但是我的循环存在问题,因为它似乎在等待麦克风返回循环之前会遇到一些问题。我如何如果没有取消或没有麦克风输入,让它返回循环吗?代码如下:
wakeTime = userInput()
wake_Time = parse(wakeTime)
speak(f"Ok, I'll set the alarm for: {wakeTime}\n. You can cancel this alarm at any time by saying cancel alarm.")
print("Waiting for alarm to sound...")
condition1 = False
condition2 = False
while condition1 == False and condition2 == False:
cancelAlarm = userInput()
timeNow = datetime.datetime.now()
if timeNow >= wake_Time:
winsound.Beep(1000,1000)
winsound.Beep(1000,1000)
winsound.Beep(1000,1000)
time.sleep(2)
speak(f"This is your alarm. The time is now: {wakeTime}\n")
condition2 = True
continue
elif 'cancel alarm' in cancelAlarm:
speak("The alarm has been cancelled.")
condition1 = True
continue