【发布时间】:2017-12-08 21:35:37
【问题描述】:
我的函数的目标是在该日历中预订与参数日期和时间相对应的时段 - 通过将日历中的值更改为“X”来完成预订(表示预订了日期/时间)。这是我到目前为止的代码:
def find_index(val, seq):
for index in range(len(seq)):
place = seq[index]
if place == val:
return index
else:
return int("-1")
def init_nested_list(size_outer, size_inner):
cal = []
for outer_index in range(size_outer):
nested_list = []
for inner_index in range(size_inner):
nested_list.append("-")
cal.append(nested_list)
return cal
def book_slot(cal,days_labels, times_labels, day, time):
pos1 = find_index(day, days_labels)
desired_day = cal[pos1]
pos2 = find_index(time, times_labels)
desired_time = desired_day[pos2]
if desired_day == "X":
print("We are sorry - that time is not available. Please try again.")
else:
print("Appointment is booked.")
days_labels = ["Wednesday","Thursday","Friday"]
times_labels = ["9","10","11"]
cal = init_nested_list(len(days_labels), len(times_labels))
print("before" , cal)
book_slot(cal, days_labels, times_labels, "Friday", "10")
print("after" , cal)
这是我得到的输出:
before [['-', '-', '-'], ['-', '-', '-'], ['-', '-', '-']]
Appointment is booked.
after [['-', '-', '-'], ['-', '-', '-'], ['-', '-', '-']]
这是我应该得到的输出:
before [['-', '-', '-'], ['-', '-', '-'], ['-', '-', '-']]
Appointment is booked.
after [['-', '-', '-'], ['-', '-', '-'], ['-', 'X', '-']]
We are sorry - that time is not available. Please try again.
如您所见,正确的输出记录了嵌套列表中的第二个元素(星期五 10 点),但对于我的代码,它不是。我知道desired_day 是用户想要预订的cal 日期,但我只是不确定如何正确获取它,并在用户预订时将其分配给字符串“X”。我也知道导致此问题的 book_slot 函数中存在编码错误,但我再次不确定它是什么...请帮助?
【问题讨论】:
标签: python string list function calendar