我的团队成员给我传递了一个字典,该字典在特定的日期和时间存储菜单数据,如下所示:
storeMenu = {}
# menu[id] MenuName,storeID,[days],[time available],[meals available]
storeMenu[1] = ['Mon Tues Special',1,[0,1],[[time(9,0),time(10,59)]],[1,2]]
storeMenu[2] = ['Thurs Fri Menu',[3,4],[5,4]]
storeMenu[3] = ['Wednesday Menu',[2],time(11,00)],[time(14,00),time(19,00)]],2]]
storeMenu[4] = ['Wednesday Lunch Menu',[[time(11,time(14,2,4]]
storeMenu[5] = ['Breakfeast Menu',3,[6,7,8]]
storeMenu[6] = ['Lunch and Dinner Menu',time(20,[9]]
如果我选择的时间在开始时间和结束时间之间,我想返回菜单[x]。我已经编写了一个函数来检索它的开始时间,结束时间和一个要检查的函数。
def getStartTime(storeMenu):
menu = []
for x in storeMenu:
if(len(storeMenu[x][3]) == 1):
result = [x,storeMenu[x][3][0][0]]
menu.append(result)
elif(len(storeMenu[x][3]) > 1):
result1 = [x,storeMenu[x][3][0][0]]
result2 = [x,storeMenu[x][3][1][0]]
result = result1+result2
menu.append(result)
return menu
print(getStartTime(storeMenuFile))
def getEndTime(storeMenu):
menu = []
for x in storeMenu:
if(len(storeMenu[x][3]) == 1):
result = [x,storeMenu[x][3][0][1]]
menu.append(result)
elif(len(storeMenu[x][3]) > 1):
result1 = [x,storeMenu[x][3][0][1]]
result2 = [x,storeMenu[x][3][1][1]]
result = result1+result2
menu.append(result)
return menu
print(getEndTime(storeMenuFile))
def menuAtSelectedTime(storeMenu,sTime,selTime,eTime):
menu = []
for menuID in storeMenu:
if(menuID == sTime[menuID-1][0] & menuID == eTime[menuID-1][0]):
startTime = sTime[menuID-1][1]
endTime = eTime[menuID-1][1]
if(startTime < selTime < endTime):
result = [menuID,storeMenu[menuID]]
menu.append(result)
return menu
sTime = getStartTime(storeMenuFile)
eTime = getEndTime(storeMenuFile)
selTime = time(15,00)
print(menuAtSelectedTime(storeMenuFile,eTime))
但是,它仅打印菜单[6],而不打印菜单[3]。我相信我的if陈述中有问题,但我似乎无法弄清楚。任何帮助,将不胜感激。谢谢!