В прошлой статье мы познакомились с циклом 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).