← Все вопросы

В каких случаях цикл for удобнее, чем while, и наоборот?

Задан 2 месяца назад30 просмотров2 ответа
0

Приведите по одному примеру задачи, где for — идеальное решение, и где без while не обойтись. Почему?

2 ответа

1

for — когда заранее известно, по чему идём: элементы списка, строки файла, range. while — когда известно только условие остановки, а сколько будет итераций, не знает никто.

По примеру на каждый:

# for: пройти по строкам файла — коллекция известна
with open('log.txt', encoding='utf-8') as f:
    for line in f:
        if 'ERROR' in line:
            print(line.strip())

# while: спрашивать, пока не введут число — итераций может быть и одна, и двадцать
while True:
    raw = input('Введите число: ')
    if raw.isdigit():
        n = int(raw)
        break
    print('Это не число, ещё раз')

Попытка сделать наоборот сразу выглядит криво: for по искусственному «большому range» вместо while или while с ручным счётчиком вместо for — верный признак, что цикл выбран не тот.

0

Мне в свое время помогла формула: for - «знаю, СКОЛЬКО», while - «знаю, КОГДА хватит». Игра «угадай число» - while, никто не знает, с какой попытки угадают. Таблица умножения - for.

Ваш ответ

, чтобы ответить на вопрос.