Компьютеры обожают повторять. Заставлять их делать одно и то же руками — глупо: для повторения есть циклы. Сегодня разберём два цикла — for и while — научимся вести счёт и превратим угадайку в настоящую игру «пока не угадаешь».

Цикл for: повторить N раз
Цикл for вместе с range повторяет тело нужное число раз. range(5) даёт числа от 0 до 4 (пять штук, начиная с нуля). Тело цикла — со сдвигом вправо (отступ), как у if.
for i in range(5):
print("Шаг", i)
Шаг 0
Шаг 1
Шаг 2
Шаг 3
Шаг 4
for i in range(5): — повторить 5 раз
print(i)
i по очереди: 0 1 2 3 4
range(5) даёт 5 чисел, начиная с 0 (пятёрку НЕ включает)
range(5) это 0,1,2,3,4 — пять чисел, но последнее 4, не 5. А range(1, 5) даёт 1,2,3,4 (с 1 до 5, пятёрку не включая).Счётчик: накапливаем результат
Часто в цикле что-то накапливают — очки, сумму, количество. Заводят переменную до цикла, а внутри увеличивают её. Запись ochki = ochki + 1 значит «возьми старое значение и прибавь 1».
ochki = 0
for raund in range(3):
ochki = ochki + 1
print("Очков:", ochki)
Очков: 3
Цикл while: пока условие верно
Когда заранее не знаешь, сколько раз повторять (например, пока игрок не угадает), берут while: он повторяет тело, ПОКА условие верно, и проверяет его перед каждым кругом.
x = 0
while x < 3:
print("x равен", x)
x = x + 1
print("Цикл закончился")
x равен 0
x равен 1
x равен 2
Цикл закончился
while условие: — повторять, ПОКА условие верно
[проверить условие]
| верно | неверно
v v
выполнить тело выйти из цикла
|
+---> снова к проверке
while что-то должно менять условие (например, x = x + 1), иначе оно всегда будет верным и цикл никогда не остановится — это «бесконечный цикл». Команда break досрочно прерывает цикл в любой момент.Упражнение: угадайка с попытками и КНБ со счётом
Первая программа — угадайка, но теперь с while: спрашивает, пока не угадаешь. Скопируй и сыграй.
import random
zagadka = random.randint(1, 100)
dogadka = 0
while dogadka != zagadka:
dogadka = int(input("Твоя догадка (1-100): "))
if dogadka < zagadka:
print("Загадано больше")
elif dogadka > zagadka:
print("Загадано меньше")
print("Угадал! Это было", zagadka)
Твоя догадка (1-100): 50
Загадано меньше
Твоя догадка (1-100): 25
Загадано больше
Твоя догадка (1-100): 37
Угадал! Это было 37
Вторая — «Камень-ножницы-бумага» на 3 раунда со счётом: for крутит раунды, random ходит за бота, счётчики копят очки.
import random
ty_ochki = 0
bot_ochki = 0
for raund in range(3):
ty = input("камень / ножницы / бумага: ")
n = random.randint(1, 3)
if n == 1:
bot = "камень"
elif n == 2:
bot = "ножницы"
else:
bot = "бумага"
print("Бот выбрал:", bot)
if ty == bot:
print("Ничья")
elif (ty == "камень" and bot == "ножницы") or (ty == "ножницы" and bot == "бумага") or (ty == "бумага" and bot == "камень"):
ty_ochki = ty_ochki + 1
print("Раунд твой!")
else:
bot_ochki = bot_ochki + 1
print("Раунд бота.")
print("Счёт — ты:", ty_ochki, "бот:", bot_ochki)
камень / ножницы / бумага: камень
Бот выбрал: ножницы
Раунд твой!
...
- В угадайке посчитай попытки: заведи
popytok = 0до цикла иpopytok = popytok + 1внутри. - В КНБ поменяй число раундов в
range(3)на 5. - Добавь после игры вывод победителя через
ifпо счёту.
while. А в КНБ раундов ровно 3 — поэтому for range(3). Это и есть разница между двумя циклами.Контрольный вопрос. Что делает цикл for i in range(3)?
Подсказка: range(3) даёт числа, начиная с 0: 0, 1, 2 — всего три.
Онлайн-проверка ответа появится позже
Контрольный вопрос. Сколько раз выполнится тело цикла for i in range(7)? Впиши число.
Исходный код для этого задания:
for i in range(7): print("привет")Подсказка: range(7) даёт 7 чисел (от 0 до 6) — столько раз и повторится тело.
Онлайн-проверка ответа появится позже
Контрольный вопрос. Какое САМОЕ БОЛЬШОЕ значение примет i в цикле for i in range(5)? Впиши число.
Исходный код для этого задания:
for i in range(5): print(i)Подсказка: range(5) это 0, 1, 2, 3, 4. Пятёрка не включается.
Онлайн-проверка ответа появится позже
Контрольный вопрос. Что выведет программа из этого задания? Впиши число.
Исходный код для этого задания:
ochki = 0 for raund in range(4): ochki = ochki + 1 print(ochki)Подсказка: ochki стартует с 0 и увеличивается на 1 за каждый из 4 кругов цикла.
Онлайн-проверка ответа появится позже
Контрольный вопрос. Что выведет программа из этого задания? Впиши число.
Исходный код для этого задания:
x = 0 while x < 3: x = x + 1 print(x)Подсказка: Цикл крутится, пока x меньше 3, и каждый раз увеличивает x на 1. На каком x он остановится?
Онлайн-проверка ответа появится позже
Контрольный вопрос. Что означает заголовок цикла while ochki < 3:?
Подсказка: while по-английски «пока». Цикл повторяется, пока условие верно.
Онлайн-проверка ответа появится позже
Контрольный вопрос. Что делает команда break внутри цикла?
Подсказка: break по-английски «прервать». Она немедленно завершает цикл.
Онлайн-проверка ответа появится позже
Задание. Напиши код сам. Напиши строку-заголовок цикла for, который повторит тело 10 раз, используя переменную i и range. (Только строку с for и двоеточием.)
Исходный код для этого задания:
# напиши ниже строку-заголовок цикла, который повторит тело 10 раз print("Повтор")Подсказка: Шаблон: for i in range(сколько раз):. Не забудь двоеточие в конце.
✅ Готово, если: ты ввёл(а) верный ответ, и онлайн-проверка его приняла.
Онлайн-проверка ответа появится позже
Задание. Напиши код сам. Внутри цикла нужно вывести текущее значение счётчика i. Напиши эту команду print.
Исходный код для этого задания:
for i in range(5): # напиши тут команду, которая выведет значение iПодсказка: Просто выведи переменную i. Шаблон: print(i).
✅ Готово, если: ты ввёл(а) верный ответ, и онлайн-проверка его приняла.
Онлайн-проверка ответа появится позже
Контрольный вопрос. Программа из этого задания зависает и печатает «привет» без конца. Почему?
Исходный код для этого задания:
x = 0 while x < 5: print("привет")Подсказка: Чтобы while однажды остановился, что-то в теле должно приближать условие к неверному (например, менять x).
Онлайн-проверка ответа появится позже
Что дальше
Теперь ты умеешь повторять действия — циклами for и while, вести счёт и прерывать цикл. Твои игры стали настоящими. В следующем разделе научимся хранить много данных сразу — списки — и соберём викторину.
