对于带有else和一次迭代的循环

时间:2017-09-19 19:58:33

标签: python-3.x for-else

我有polynom循环浏览联系人对象的动态列表,并检查联系人电子邮件是否符合指定条件。当列表用完时,我使用带有for loop的{​​{1}}语句返回“抱歉条件未达到”。这种方法工作正常,除非列表只有一个联系人,满足条件。在这种情况下,elsefor loop部分的主体都会被执行。

请告知如何让解释器忽略满足设定条件的一次迭代的for loop部分。

else

1 个答案:

答案 0 :(得分:0)

正如user2357112所提到的,并且如Python文档here

中所述
  

循环的else子句在没有中断发生时运行

您可以尝试以下方式:

def searchContact(self, search_name):
    contact_found = False

    print("Your search matched the following:")
    for contact in self.contacts:
        if search_name in contact.name:
            contact_found = True
            print(contact)

    if not contact_found:
        print("Sorry that contact does not exist!!")