Приведённый код уже выполняет условие: total создан до цикла и увеличивается на 2 для чётного числа, на 1 для нечётного. Сам цикл не завершается и ничего не выводит.
Бесконечный цикл с накоплением суммы на основе случайного числа
Приведённый код уже выполняет условие: total создан до цикла и увеличивается на 2 для чётного числа, на 1 для нечётного. Сам цикл не завершается и ничего не выводит.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Нужно объявить переменную total до входа в цикл, после чего запустить бесконечный цикл, в котором генерируется случайное целое число. Если полученное число чётное, к total прибавляется 2, иначе — 1.
import random
total = 0
while True:
value = random.randint(0, 100)
if value % 2 == 0:
total += 2
else:
total += 1
Ответ
Приведённый код уже выполняет условие: total создан до цикла и увеличивается на 2 для чётного числа, на 1 для нечётного. Сам цикл не завершается и ничего не выводит.
random.randint(0, 100) включает обе границы. На этом диапазоне 51 чётное и 50 нечётных чисел, поэтому вероятности двух ветвей немного различаются.
Python int не переполняется на фиксированной машинной границе, но число постепенно растёт. Для полезной программы обычно нужен способ остановки и выдачи результата; для эксперимента можно заменить while True на цикл с известным количеством шагов. Непрерывная генерация без ожидания нагружает процессор.