Как создать цикл `for`, который выполняется 10 раз, но печатает только 3 первых значения?

Можно использовать оператор break:

for i in range(10):
    if i >= 3:
      break
    print(i)
  

Есть несколько способов создать цикл for в Python, который выполняется 10 раз, но печатает только первые 3 значения. Вот один из самых простых и понятных:


for i in range(10):
    if i < 3:
        print(i)
    else:
        break
  

Объяснение:

  • for i in range(10):: Этот цикл итерируется 10 раз, присваивая переменной i значения от 0 до 9.
  • if i < 3:: Это условие проверяет, является ли значение i меньше 3.
  • print(i): Если условие i < 3 истинно, то текущее значение i выводится на экран. Таким образом, печатаются значения 0, 1 и 2.
  • else: break: Как только значение i становится равным 3 (или больше), выполняется блок else. Оператор break прерывает выполнение цикла for.

Альтернативные решения:

1. Использование среза:


for i in range(10)[:3]:
    print(i)
  

Здесь range(10)[:3] создает список чисел от 0 до 9, а затем берет только первые 3 элемента (срез), по которым и происходит итерация.

2. Использование enumerate и счетчика:


for count, i in enumerate(range(10)):
    if count >= 3:
        break
    print(i)
  

enumerate возвращает кортеж (индекс, значение) для каждого элемента в итерируемом объекте. Мы используем count для отслеживания количества итераций и прерываем цикл, когда count достигает 3.

3. Использование itertools.islice:


import itertools

for i in itertools.islice(range(10), 3):
    print(i)
    

Этот способ использует функцию islice из модуля itertools, которая возвращает итератор, выдающий только первые 3 элемента из range(10).

Все эти подходы приводят к одному и тому же результату: на экран выводятся числа 0, 1 и 2.

0