Пустая строка (результат нажатия только клавиша Enter) находится во всякой строке.
Потому вместо
if a in text:
примените
if а and а in text:
Объяснение:
Выражение
а and a in text
значит «когда а
непустая строка (т.е. не был нажат только клавиш Enter) и строка а
находится в строке text
».
(Первое a
в контексте команды if
имеет значение True
тогда и только тогда, когда строка а
непустая — см. часть «Объекты, которые приравниваются к False» в Используем объекты вместо True и False — truthy и falsy значения в Python.
Например, эти объекты имеют значение False
:
- пустой список:
[]
;
- пустой кортеж:
()
;
- пустой словарь:
{}
;
- пустое множество:
set()
;
- пустая строка:
""
;
- пустой диапазон:
range(0)
.)
Примечание:
Еще лучше будет вместо переменной a
применить выражение a.strip()
, чтобы программа работала хорошо тоже после ввода пробелов перед / за вводимым текстом — метод .strip()
их все удалит:
if а.strip() and а.strip() in text:
или сразу сначала применить метод .strip()
while True:
a = input("--->").strip()
text = "hello"
if a and a in list(text):
print(text)