Выполняется условие else после выполнения if. Python

elif command == "find":
    title = input("Введите название книги для поиска: ")
    sub_string = title
    file = open("knigi.xtx", "r")
    lines = file.readlines()
    for line in lines:
        if sub_string in line:
            print(line)
    else:
        print("Такой книги нет")
else:
    print("Неизвестняа команда")

выполняется else после if. Может проблема с отступами? Может кто подсказать?


Ответы (1 шт):

Автор решения: mrBars1k

У Вас в цикле используется только if, а else находится вне цикла.

Также, цикл будет продолжатся до конца. Если Вам нужно, чтобы после нахождения необходимой книги цикл прерывался, то используйте break.

Если необходимо пройти по списку и только после полного прохода или нахождения нужного значения написать результат поиска, то можно попробовать так:

n = 0

for line in lines:
    if sub_string in line:
        print(line)
        n += 1
        break
if n = 0:
    print("Такой книги нет.")

100% есть решение удобнее и эффективнее, но это не про меня.

→ Ссылка