Бесконечный генератор натуральных чисел

Используйте while True и yield: генератор хранит текущее число между обращениями, начиная с 1. Следующее значение получают через next() на том же объекте генератора.

Короткий ответ

Что ответить на собеседовании

Используйте while True и yield: генератор хранит текущее число между обращениями, начиная с 1. Следующее значение получают через next() на том же объекте генератора.

Подробный разбор

Ответ с пояснениями

Условие

Реализуйте функцию‑генератор, которая бесконечно выводит целые числа, начиная с 1. При каждом вызове она должна возвращать следующее значение последовательности без какого‑либо ограничения сверху.

Ответ

Используйте while True и yield: генератор хранит текущее число между обращениями, начиная с 1. Следующее значение получают через next() на том же объекте генератора.

Реализация без верхней границы:

def natural_numbers():
    value = 1
    while True:
        yield value
        value += 1

numbers = natural_numbers()
print(next(numbers))  # 1
print(next(numbers))  # 2

Повторный вызов natural_numbers() создаёт новую независимую последовательность, а не продвигает старую. Не преобразовывайте такой генератор в list: он никогда не исчерпается. Количество хранимых объектов постоянно, но размер самого большого целого постепенно увеличивается.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее