Для цикла с else и одной итерацией
У меня есть for loop
он просматривает динамический список объектов контактов и проверяет, соответствует ли контактный адрес электронной почты указанному условию. Я использовал else
заявление с for loop
вернуть "Извините, условие не выполнено", когда список исчерпан. Этот подход работает отлично, за исключением случаев, когда в списке есть только один контакт, который удовлетворяет условию. В этом сценарии оба тела for loop
и else
части выполнены.
Пожалуйста, посоветуйте, как позволить переводчику игнорировать else
часть для одной итерации, которая соответствует заданному условию.
def searchContact(self, search_name):
print("Your search matched the following:")
for contact in self.contacts:
if search_name in contact.name:
print(contact)
else:
print("Sorry that contact does not exist!!")
1 ответ
Как упоминает user2357112, и как указано в документации по Python здесь
условие 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!!")