← Все вопросы

Цикл while крутится бесконечно, хотя счётчик вроде растёт

Задан 17 месяцев назад271 просмотров2 ответа
6

Хочу вывести числа от 1 до 5, но программа зависает и печатает 1 без конца:

i = 1
while i <= 5:
    print(i)
    i + 1

Я же увеличиваю i, почему он не меняется?

2 ответа

12
✓ Принятый ответ — помог автору

Строка i + 1 вычисляет значение 2, но никуда его не сохраняет — результат просто выбрасывается. Поэтому i навсегда остаётся равным 1, условие i <= 5 всегда истинно, и цикл бесконечный.

Нужно записать результат обратно в i:

i = 1
while i <= 5:
    print(i)
    i = i + 1   # или короче: i += 1

Запомни правило: чтобы переменная изменилась, должно быть присваивание =.

3

На будущее: если случайно запустил бесконечный цикл и консоль зависла — жми Ctrl+C, это прервёт выполнение.

Ваш ответ

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