如何使用 2 个数组的嵌套警报创建警报

问题描述 投票:0回答:1

我正在尝试在 python 中创建一个代码,根据两个单独数组的时间播放警报。

定时器 1 将发出 1 声蜂鸣声,定时器 2 将发出 2 声蜂鸣声。时代并不排斥,一切都需要基于一个主要时间。

import time
import datetime
import winsound

def sound_alarms(timer_1, timer_2):
    
    alarm = 0
    
    for i in timer_1 and timer_2:
        
        while alarm <= i:
            
            break_timer = datetime.timedelta(seconds = alarm)
            
            print(break_timer, end="\r")
            
            time.sleep(1)
            
            alarm += 1

            if  alarm == i in timer_1:
                winsound.Beep(234, 1500)
            
            if alarm == i in timer_2:
                winsound.Beep(234, 500)
                winsound.Beep(234, 500)


timer_1 = [10 , 20 , 30]
timer_2 = [15, 25, 35]
sound_alarms(timer_1, timer_2)
python timer alarm
1个回答
0
投票

问题出在 for 循环中——它造成了令人困惑的行为。实际上,您可以通过一些修改将其完全删除。这段代码在我测试时有效:

import time
import datetime
import winsound

def sound_alarms(timer_1, timer_2):
    
    alarm = 0
    maximum_value = max(timer_1+timer_2)
        
    while alarm <= maximum_value:
        
        break_timer = datetime.timedelta(seconds = alarm)
        
        print(break_timer, end="\r")
        
        time.sleep(1)
         
        alarm += 1

        if alarm in timer_1:
            winsound.Beep(234, 1500)
            
        if alarm in timer_2:
            winsound.Beep(234, 500)
            winsound.Beep(234, 500)


timer_1 = [10 , 20 , 30]
timer_2 = [15, 25, 35]
sound_alarms(timer_1, timer_2)

我所做的是找到要计数的最大值,并让它每秒检查当前时间是否在任一列表中。

© www.soinside.com 2019 - 2024. All rights reserved.