Задать вопрос

Что я делаю не так с этим циклом?

Есть такая функция
def checkId(who,where):
    status=0
    file = open(where,'r')
    for line in file:
        if line == who:
            status=1
            file.close()
            break

    return bool(status), line

print(checkId(5,'test.txt'))


на вход функции передается значение, которое мы хотим найти, и файл в котором она должна его найти.
Если она его нашла возвращает true если нет false.
Как я предполагал в цикле for как только мы встречаем нужное значение, брикаем цикл и всё.
однако получается, что функция всегда доходит до конца файла и всегда возвращает false.
Подскажите что я тут сделал не так?
  • Вопрос задан
  • 225 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Python-разработчик: расширенный курс + нейросети
    12 месяцев
    Далее
  • Яндекс Практикум
    Python-разработчик
    10 месяцев
    Далее
  • Skillbox
    Профессия Python-разработчик + ИИ
    10 месяцев
    Далее
Решения вопроса 1
viaskit
@viaskit
Привет, возможно проблема с типами 5 == '5' False, приведи who внутри функции к строке
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Grol
@Grol Автор вопроса
ЯДРЕНЫ ПАСАТИЖИ!!!!
сделал int(line), всё заработало.
Огромное спасибо.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
ITK academy Краснодар
от 220 000 до 300 000 ₽
ITK academy Краснодар
от 75 000 ₽
DimaTech Ltd Краснодар
от 140 000 до 140 000 ₽