Задача на перебор списка

Нужно написать программу, которая запрашивает число, проверяет есть ли оно в списке заданного заранее.
Если да выводит один текст, если нет - другой.

Запрещено использовать оператор in. Нужно использовать цикл for и конструкцию if.

Вот мое решение, но оно не работает, где использовать for не понимаю.

list1 = [1, 5, 3, 2, 6, 8, 9]
a = int(input('Введите число:'))

if a == list1:
    print('Число есть в списке')
else:
    print('Числа нет в списке')

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

Автор решения: S. Nick

Как вариант:

list1 = [1, 5, 3, 2, 6, 8, 9]
a = int(input('Введите число: '))
flag = False

for item in list1:
    if a == item:
        print(f'Число {a} есть в списке: {list1}')
        flag = True
        break
        
if not flag:       
    print(f'Числа {a} нет в списке: {list1}')

введите сюда описание изображения

→ Ссылка
Автор решения: Глеб

Решение вообще без in (правда, и без цикла for, но рабочее решение от S. Nick уже есть, так что это просто забавный трюк):

list1 = [1, 5, 3, 2, 6, 8, 9]
number = int(input('Введите число: '))

set1 = set([number])
set2 = set(list1)

x = set1 & set2

if x != set():
    print('Есть!')
else:
    print('Нет!')

Смысл в том, что мы число и список преобразуем в множества и проверяем их пересечение.

→ Ссылка
Автор решения: Stanislav Volodarskiy

Редкий случай когда полезен for/else:

list1 = [1, 5, 3, 2, 6, 8, 9]
a = int(input('Введите число:'))

for b in list1:
    if a == b:
        print('Число есть в списке')
        break
else:
    print('Числа нет в списке')
→ Ссылка
Автор решения: Danis

Можно попробовать использовать any:

if any(a == el for el in list1):
    ...
else:
    ...

либо list.count:

if list1.count(a):
    ...
else:
    ...
→ Ссылка