Цикл For в Python
Цикл for в Python предназначен для перебора элементов, находящихся в коллекции. Зачем нужно перебирать эти элементы? Разумеется, что сам по себе перебор элементов нам ничего не дает. С каждым элементом, последовательно должно выполняться одно и тоже действие, указанное в теле цикла for.
Итерация цикла for в Python
Например, у нас есть список чисел. На первом проходе берется первое число, затем второе, третье и так далее и распечатывается на экране. Один виток совершения однотипного действия (взяли число и распечатали) - называется итерацией.
Чтобы оценить полезность цикла for, представим, как бы мы справились, если бы не было циклов. Создадим список с целыми числами и присвоим его переменной num. Обратимся по индексу к каждому элементу списка и распечатаем их. На экране вывелись все значения из списка.
num = (5, 10, 15)
print(num[0])
print(num[1])
print(num[2])
5
10
15
Нетрудно догадаться, что если список будет состоять из ста чисел, то слово print придется вводить 100 раз. В программировании такое расточительство не прокатит, иначе какой в нем смысл?
Создание цикла for по списку в Python
Решим ту же самую задачу (вывод элементов на экран), но с использованием цикла for. Цикл for будет сам брать элементы из списка, пока они не закончатся и делать с ними то, что указано в теле цикла.
num = (5, 10, 15) // 1
for elem in num: // 2
print (elem) // 3
5
10
15
// 1 - создали список num
// 2 - запускаем цикл for для каждого элемента (elem) в списке num
// 3 - вывести на экран все элементы
Мы получили такой же результат как и в первом случае, но более рациональным способом. Когда элементы списка заканчиваются, цикл for прекращает работу.
Синтаксис цикла for
- for - ключевое слово, с английского языка переводится как "для". Говоря простым языком - "Сделать для каждого элемента действие из тела цикла".
- elem - произвольное название переменной в цикле. Переменная elem поочерёдно принимает на себя значение из списка для дальнейшего выполнения команды из тела цикла.
- : - после двоеточия, с новой строки и с отступом в 4 пробела пишется тело цикла - какое-то действие.
Задача на цикл for
Условие задачи:
Посчитать сумму чисел в списке.
Решение:
a = (10, 20, 30)
summa = 0
for number in a:
summa = summa + number
print (summa)
60 // вывод результата
Алгоритм решения задачи
Помимо переменной a со списком, объявляет ещё одну переменную summa с нулевым значением. При каждом новом прохождении цикла, обновляется результат сложения текущего значения из переменной summa со следующим элементом, пока мы не получим конечный результат. Значение переменной summa, поменялось по ходу итерации, с 0 до 60.
summa = 0 + 10 // 10
10 + 20 // 30
30 + 30 // 60
Функция range() в Python
Что делать, если количество элементов в списке внушительное, глупо последовательно прописывать все числа один за другим. Необходимо более элегантное решение. В Python есть встроенная функция range(), которая может принимать один, два или три аргумента. Функция range() генерирует последовательность чисел в указанном диапазоне. Если мы пропишем range(0, 10), то сгенерируется последовательность 0,1,2,3,4,5,6,7,8,9. Обратите внимание, что числа генерируются от первого аргумента до второго, не включая последнего. Зададим диапазон чисел, от 5 до 11 и выведем список сгенерированных чисел. Мы вывели числа списка в указанном диапазоне, не включая второй аргумент.
for i in range(5, 11):
print(i)
5
6
7
8
9
10
Цикл for и функция range() отлично выполняют свою работу, нам больше не нужно перечислять весь список. Кроме того, мы все так же можем обращаться к элементу по его индексу.
Вложенные циклы в Python
Цикл называется вложенным, если он располагается внутри другого цикла. С помощью вложенных циклов можно вывести на экран разные элементы, разное количество раз.
cars = ["mazda", "opel", "audi", "honda"]
for i in range(len(cars)): // 0, 1, 2, 3
for h in range(i+1):
print(cars[i])
mazda
opel
opel
audi
audi
audi
honda
honda
honda
honda
Как так получилось?
Функция range() у внешнего цикла последовательно выведет значение индексов от 0 до 4. На первой итерации цикла i = 0. Это значит, что переменная h вложенного цикла получит в диапазоне одно число и совершит одну итерацию. Поэтому название машины и индексом 0, выведется только один раз. Вернемся во внешний цикл и на второй итерации i = 1, а в диапазоне h = 0, 1 уже находится два числа. Вложенный цикл for пройдется по двум числам в диапазоне и название opel, выведется на экран два раза. При каждом следующем проходе, количество последовательных элементов будет увеличиваться на единицу.
-
- Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.