В прошлой статье мы познакомились с циклом while.

Он отлично подходит, когда мы не знаем заранее, сколько раз нужно повторить действие.

Например:

  • ждать правильный пароль;
  • повторять меню программы;
  • выполнять действия, пока выполняется условие.

Но очень часто мы уже знаем, что хотим перебрать некоторый набор данных.

Для этого существует цикл for.


Первый цикл for

Самый простой пример:

for number in range(5):
    print(number)

Результат:

0
1
2
3
4

Python по очереди получает каждое число и сохраняет его в переменной number.

После этого выполняется тело цикла.


Что такое range()?

Функция range() создаёт последовательность чисел.

Например,

range(5)

означает:

0 1 2 3 4

Поэтому цикл

for number in range(5):
    print(number)

можно читать почти как обычный русский язык:

Для каждого числа из последовательности 0, 1, 2, 3, 4 выполнить следующий код.


Можно начать с другого числа

Например,

for number in range(3, 8):
    print(number)

Результат:

3
4
5
6
7

Первое число - начало последовательности.

Второе - граница, которая уже не входит в результат.

Это одна из особенностей Python.


Можно изменить шаг

По умолчанию числа увеличиваются на единицу.

Но шаг можно изменить.

Например,

for number in range(2, 11, 2):
    print(number)

Результат:

2
4
6
8
10

Третий аргумент определяет, через сколько увеличивать число.


for умеет работать не только с числами

Цикл for может перебирать не только результат range().

Например, строку.

for letter in "Python":
    print(letter)

Результат:

P
y
t
h
o
n

Каждый проход цикла получает следующий символ строки.

Позже мы увидим, что точно так же можно перебирать списки, кортежи, множества и словари.


Когда использовать for, а когда while?

Часто выбор очень простой.

Используйте for, если нужно пройтись по элементам какой-либо последовательности.

Например:

  • вывести числа от 1 до 10;
  • обработать все элементы списка;
  • перебрать символы строки.

Используйте while, если повторение зависит от некоторого условия.

Например:

  • ждать правильный пароль;
  • повторять меню программы;
  • выполнять действия до команды пользователя.

Что мы сегодня узнали

Сегодня мы познакомились со вторым видом циклов.

  • for перебирает элементы последовательности.
  • range() создаёт последовательность чисел.
  • Можно задать начало, конец и шаг.
  • for умеет работать не только с числами, но и с другими данными, например со строками.

Попробуйте сами

Попробуйте выполнить следующие программы.

Вывести числа от 1 до 10:

for number in range(1, 11):
    print(number)

Вывести только чётные числа:

for number in range(2, 21, 2):
    print(number)

Вывести все символы своего имени:

name = input("Введите имя: ")

for letter in name:
    print(letter)

Попробуйте изменить диапазон чисел и шаг, а также ввести разные имена.


Что дальше?

Теперь мы умеем повторять действия и принимать решения.

Но пока работаем только с отдельными значениями.

На практике данные часто хранятся группами.

Например:

  • список покупок;
  • список пользователей;
  • список оценок.

В следующей статье мы познакомимся с первой коллекцией в Python - списками (list).