8.1 Цикл for

То, что можно выполнять группу команд по заданному условию — это отлично. А что, если я хочу выполнить какое-то действие 100 раз? Как это сделать?

Для этого в языке Python есть циклы. И для нашей задачи идеально подходит цикл for. Общий вид оператора for таков:

for переменная in список_значений:
    команда1
    команда1
    командаN

Где список_значений — это некий набор значений: список, строка, словарь (о них позднее).

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

Пример:

Пример Пояснение

fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(fruit)
1. Переменной fruit присваивается значение "apple" и выполняется команда print(fruit ) 2. Переменной fruit присваивается значение "banana" и выполняется команда print(fruit ) 3. Переменной fruit присваивается значение "cherry" и выполняется команда print(fruit )

Вот как работает цикл:

Если в списке после слова in будет 10 значений, значит блок команд выполнится 10 раз.

Для каждого значения из списка_значений происходит две вещи:

  1. Переменной цикла (которая указана после слова for) присваивается очередное значение из списка_значенией.
  2. Затем выполняется блок команд.

Еще пример:

Пример Пояснение

numbers = [1,2,3,4,5,6,7,8,9,10]
for x in numbers:
    print(x)
Цикл выведет на экран числа 1 2 3 … 10

8.2 Задание диапазона — range

В последнем примере вы могли видеть, что вывести на экран 10 чисел очень просто. Но что, если мы хотим выполнить цикл 100 раз? Или 1000?

Разумеется для этого есть решение. В языке Python есть специальная функция range() для генерации последовательности чисел, что в комбинации с циклом for делает их мощным инструментом для управления повторяющимися задачами.

Функция range() может быть использована несколькими способами, в зависимости от количества аргументов, передаваемых в неё.

Основы применения range():

Один аргумент: range(n) генерирует последовательность от 0 до n-1. Это полезно, когда нужно выполнить действие определённое количество раз.


for i in range(5):
    print(i)  # Выведет числа от 0 до 4

Два аргумента: range(start, stop) генерирует последовательность от start до stop-1. Это полезно для начала итерации с определённого числа.


for i in range(1, 6):
    print(i)  # Выведет числа от 1 до 5 

Три аргумента: range(start, stop, step) добавляет третий аргумент step, который определяет шаг между числами в последовательности.


for i in range(0, 10, 2):
    print(i)  # Выведет четные числа от 0 до 8  

Обратные циклы: range() может генерировать числа в обратном порядке, что позволяет выполнять обратные итерации.


for i in range(10, 0, -1):
    print(i)  # Выведет числа от 10 до 1 

Функция range() в сочетании с циклом for предоставляет гибкий инструмент для контроля итераций в Python. Понимание её возможностей помогает создавать более эффективные и понятные циклы, которые являются неотъемлемой частью любой программы.

8.3 Цикл по списку

Если вы хотите выполнить группу действий над разными значениями, функция range() вам не подходит, вы всегда можете объединить эти значения в список с помощью квадратных скобок. Общий вид этой операции выглядит так:


for переменная in [val1, val2, …, valN]:
    команда1
    команда1
    командаN

Вы просто перечисляете значения через запятую, и цикл выполнится для каждой из них, а переменная последовательно примет каждое значение. Пример:

Пример Пояснение

fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(fruit)
                    
Цикл выведет на экран строки apple banana cherry

Вы можете указать в списке числа, причем прямо в цикле после слова in:

Пример Пояснение

for price in [0.99, 2.75, 0.25]:
    print(price)
Цикл выведет на экран числа 0.99 2.75 0.25

В списке вообще можно перечислить объекты любого типа:

Пример Пояснение

for data in [0.99, "apple", -1, True]:
    print(data)
                
Цикл выведет на экран строки 0.99 apple -1 True
undefined
2
Задача
Модуль 1: Python Core, 3 уровень, 7 лекция
Недоступна
Циклотрон
Циклотрон
undefined
2
Задача
Модуль 1: Python Core, 3 уровень, 7 лекция
Недоступна
Хитрый раджа
Хитрый раджа