验证的Python嵌套循环问题

时间:2017-03-25 20:10:41

标签: python

我正在创建一个工作日志,用户可以按日期输入任务或查找任务。

按日期查找任务时,会向用户显示日期列表。然后,用户可以通过输入数字从列表中进行选择。然后应显示该特定日期的任务列表。

如果用户输入的数字不在日期列表中,我只会遇到问题。你可以在注释掉的方法结尾看到else语句 - 这引起了一些问题。否则一切正常。所以问题 - 如果用户的输入不在索引列表中而没有在每次循环列表时打印出消息,我该如何提供错误消息?

def search_by_date(self):
    for i, d in enumerate(self.tasklist.dates()):
        enum_list = [(i+1,d) for i,d in enumerate(self.tasklist.dates())]
        print(i+1, ':', d)
    while True:
        datereq = input("Select Number To See Tasks For A Date: ").strip()
        try:
            datereq = int(datereq)

        except ValueError:
            print("Invalid Entry")
            continue

        else:
            for i, d in enum_list:
                for task in self.tasklist.task_list:
                    if datereq == i:
                        if task.date == d:
                            print("Date :", task.date,
                                  " Task:", task.task,
                                  " Minutes:", task.minutes,
                                  " Notes: ", task.notes
                                  )
                            continue

                    #else:
                        #print("Invalid Entry. Please try again")
                        #continue

1 个答案:

答案 0 :(得分:2)

这是你正在寻找的吗?

def search_by_date(self):
    for i, d in enumerate(self.tasklist.dates()):
        enum_list = [(i+1,d) for i,d in enumerate(self.tasklist.dates())]
        print(i+1, ':', d)
    while True:
        datereq = input("Select Number To See Tasks For A Date: ").strip()
        try:
            datereq = int(datereq)

        except ValueError:
            print("Invalid Entry")
            continue

        else:
            found = False
            for i, d in enum_list:
                for task in self.tasklist.task_list:
                    if datereq == i and task.date == d:
                        found = True
                        print("Date :", task.date,
                              " Task:", task.task,
                              " Minutes:", task.minutes,
                              " Notes: ", task.notes
                              )
            if not found:
                print("Invalid Entry. Please try again")