def SearchEntryComment():
print("\n\nSearch for guestbook comment with a keyword\n")
CommentSearch = input("Enter key word for search: ")
for i in range(len(dlGuestBook)):
if CommentSearch in dlGuestBook[i]["Comment"]:
print(i+1, ".", dlGuestBook[i] ["FirstName"], dlGuestBook[i]["LastName"], dlGuestBook[i]["Date"])
print(dlGuestBook[i]["Comment"], "\n")
else:
print("No results found")
print("\n")
Это мой текущий код, однако, когда я запускаю его для каждого элемента в списке, он будет печатать "никаких результатов не найдено", и если он там, он напечатает его. Я хочу, чтобы он печатал результаты, которые есть или просто не найдены.
просто используя resultCount
для сохранения количества результатов, найденных в списке, и проверьте цикл count after for.
def SearchEntryComment():
print("\n\nSearch for guestbook comment with a keyword\n")
CommentSearch = input("Enter key word for search: ")
resultCount = 0
for i in range(len(dlGuestBook)):
if CommentSearch in dlGuestBook[i]["Comment"]:
print(i+1, ".", dlGuestBook[i] ["FirstName"], dlGuestBook[i]["LastName"], dlGuestBook[i]["Date"])
print(dlGuestBook[i]["Comment"], "\n")
resultCount += 1
if resultCount == 0:
print("No results found")
print("\n")
Посмотрите внимательно на то, что делает цикл for
.
for i in range(len(dlGuestBook)): # for each entry in the guestbook
if CommentSearch in dlGuestBook[i]["Comment"]:
# print the comment
else:
print("No results found")
Я думаю, что вы хотите только напечатать "Нет результатов" после завершения цикла, если он не нашел никаких результатов. Что-то вроде этого может быть решением.
foundComment = False
for i in range(len(dlGuestBook)):
if CommentSearch in dlGuestBook[i]["Comment"]:
foundComment = True
# print the comment
if not foundComment:
print("No results found")
False
и True
а не false
или true
.
for
установите для переменной с именемfound
значениеFalse
. Если что-то найдено, установите для него значениеTrue
. Когда цикл будет завершен, вы узнаете, печатать ли сообщение «ничего не найдено».