← Все вопросы
В каких случаях цикл for удобнее, чем while, и наоборот?
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.
Ваш ответ
, чтобы ответить на вопрос.