Python 正在尝试编写时间增量函数

Python 正在尝试编写时间增量函数,python,datetime,Python,Datetime,我正在尝试用python编写一个函数,通过该函数,我可以输入开始时间和结束时间,它将返回总小时数 目前,我已经能够编写一个函数,在其中输入例如('07:30:00','12:00:00'),并返回4.5 但我想能够导入一个列表。比如说, ('07:30:00,08:30:00','12:00:00,12:00:00')并让其返回4.5,3.5等 我如何修改我的代码,以便我可以这样做 谢谢 我已经胡闹了几个小时,但我对python非常陌生,所以不知道如何从这里开始 def compute_open

我正在尝试用python编写一个函数,通过该函数,我可以输入开始时间和结束时间,它将返回总小时数

目前,我已经能够编写一个函数,在其中输入例如('07:30:00','12:00:00'),并返回4.5

但我想能够导入一个列表。比如说,

('07:30:00,08:30:00','12:00:00,12:00:00')并让其返回4.5,3.5等

我如何修改我的代码,以便我可以这样做

谢谢

我已经胡闹了几个小时,但我对python非常陌生,所以不知道如何从这里开始

def compute_opening_duration(opening_time, closing_time):
    while True:
        try:
            FORMAT = '%H:%M:%S'
            tdelta = datetime.strptime(closing_time, FORMAT) - datetime.strptime(opening_time, FORMAT)
            tdelta_s = tdelta.total_seconds()
            tdelta_m = tdelta_s/60
            tdelta_h = tdelta_m/60
            print(tdelta_h)
            break
        except ValueError:
            print('-1')
            break

将数组作为参数传递给函数。检查打开时间数组的长度是否与关闭时间数组的长度相同。声明结果数组,在计算tdelta的行中,必须附加到结果数组

def compute_opening_duration(opening_time_arr, closing_time_arr):
    if len(opening_time_arr) != len(closing_time_arr):
        return
    resultTime = []
    for idx, closing_timein enumerate(closing_time_arr) :
            try:
                FORMAT = '%H:%M:%S'
                tdelta = datetime.strptime(closing_time, FORMAT) - 
    datetime.strptime(opening_time_arr[idx], FORMAT)
                resultTime.append(tdelta)
                tdelta_s = tdelta.total_seconds()
                tdelta_m = tdelta_s/60
                tdelta_h = tdelta_m/60
                #print(tdelta_h)
            except ValueError:
                pass   
            #print('-1')
    return resultTime

如果我答对了问题

def计算打开时间(时间列表):
#转换为日期时间:
格式=“%H:%M:%S”
时间列表=[datetime.strtime(时间,格式)表示时间列表中的时间]
#计算和返回增量
返回[(关闭时间-打开时间)。总秒数()/3600
对于打开时间,请在zip中关闭时间(时间列表[:-1],时间列表[1:])

传统参数表示传统检查。您在一个参数中传递了多次,因此必须对其进行分割。
opening_time.split(','))
将完成这项工作。它将根据分隔符将字符串分为n个部分。通过索引访问它们,这将只是一个简单的列表。如何在不在后台打印函数的情况下将结果存储为np.array。我正在尝试定义array=np.array(compute_blah_blah)但是它一直在打印。你是要求打印函数吗?还是其他?我想在我将它转换为数组后打印它。我尝试返回而不是打印,但返回错误if语句中有一个错误。此外,我将打印函数更改为pass。你有什么类型的错误,在哪一行代码中?没有错误,代码工作正常很明显。但是,我想把它转换成数组。聪明的方法。对我来说看起来很棒。有一个问题,你能澄清一下
zip
函数在这里是如何工作的吗?谢谢!谢谢!zip生成了一个生成器,它通过将索引0,…,n-2处的元素分别与索引(1,…,n-1)配对,从时间列表中输出成对的连续时间(zip输入中的两个列表理解)