Цикл for

Модуль 1: Python Core
3 уровень , 7 лекция
Открыта

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
4
5
6
7
8
9
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
2
Задача
Модуль 1: Python Core, 3 уровень, 7 лекция
Недоступна
Циклотрон
Циклотрон
2
Задача
Модуль 1: Python Core, 3 уровень, 7 лекция
Недоступна
Хитрый раджа
Хитрый раджа
Комментарии (30)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
26 октября 2025
Вообще не понятно. Решение показывает с f-строками, которые мы не походили. Хотя само мое решение было верым (без f-строк).
AsaKe Уровень 4
31 июля 2025
Приветствую. Напомните пожалуйста на какой лекции проходили F строки?
Vlad Уровень 15
23 августа 2025
Скорее всего поздно, но, пока что - не проходили, Ф строки:"4 уровень, 4 лекция"
Stanislav Tyusov Уровень 4
26 июня 2025
Задача про Раджу таки решается с помощью тех вводных данных которые были представленны до этого , а решение предлагаемое странное.
Даниил Уровень 1
20 июня 2025
x = 0 for i in range(1, 101): x += i print(x) total_sum = 0 for number in range(1, 101): total_sum += number print(total_sum) два одинаковых решение только одно выводит в столбик другое в строчку всё в месте КАК ТАК?
Даниил Уровень 1
20 июня 2025
ответ прост и туп print Должен быть на ровне с x ( как это влияет я пока не пон )
Mamba84 Уровень 4
14 октября 2025
total = 0 for number in range(1, 101): total += number print(total)
Анастасия Радостная Уровень 24 Expert
8 мая 2025
Что-то я не выкупила прикола после того как заглянула в решение, уже после того как мое решение было принято. К слову, потрачено на задачу минут 45 примерно. "Используйте правильное склонение слова 'зерно' в зависимости от количества зерен. Например, '1 зерно', '2 зерна', '5 зерен'." Что-то я в решении не вижу никаких проверок на последнюю цифру в получившемся после вычисления степени числе. Из решения в правильном ответе ВСЕГДА будет "зерен". Изначально написала, как было в правильном решении, задание не принято. Итог, со всеми проверками и исключениями на дурацкую последнюю цифру - вышло 18 строчек, код принят. Тогда, стесняюсь спросить, почему в правильном решении это не учтено, а я должна была учесть? Не то что в задании этой информации нет, даже в решении. Негодованию нет предела. P.S. Для новичков, впервые открывших курс пару дней назад - задачи ту мач. У меня есть небольшой бэкграунд, мне проще, а что делать и как выезжать тем, кто ни бэ, ни мэ?
bbirdy Уровень 13
8 мая 2025
я не понимаю, где вы нашли строку про правильное склонение слова "зерно" в условиях задачи
Анастасия Радостная Уровень 24 Expert
9 мая 2025
А этого там и не было, эта фраза появилась после того, как задача была отправлена на проверку. Увы, повторно открыть задачу и проделать те же манипуляции, чтобы сверху в окне проверки высветилась фраза "Используйте правильное склонение слова 'зерно' в зависимости от количества зерен. Например, '1 зерно', '2 зерна', '5 зерен'." я уже не могу. Отсюда и негодование.
Maksym Muravlov Уровень 4
7 мая 2025
for num in range(1,64): kletka = "Клетка" x = "зерна" print(kletka , num , num , x) i have it dont correct pls help
Anatolii Уровень 4
7 мая 2025
ну ее нафиг эту математику вашу, я сюда кодить пришел учиться
alex_us Уровень 20
8 апреля 2025
Врядли есть что-то проще : for i in range(64): result = 2 ** i print(f"Клетка {i + 1}: {result} зерна")
Anonymous #3582711 Уровень 1
14 мая 2025
for n in range(64): print(f"Клетка {n+1}: {2**n} зерен")
Виктор Уровень 11
25 марта 2025
Сначала решил без степени, вот таким колхозным кодом, авотматизировав алгоритм как я бы считал в уме 😂:

res = 0
for i in range (1 , 65):
    if i == 1:
        res = res + 1
    else:
        res = res + res
    print("Клетка " + str(i) + ": " + str(res) + " зерна")
Но задача не принималась, хотя решение верное, потом решил со степенью.
gordy Уровень 6
20 марта 2025
Задача вообще не для уровня на которым ученики должно к ней приходить. Даже не объяснено как использовать фигурные скобки
bbirdy Уровень 13
8 мая 2025
как я понял, вы говорите про f-строки из правильного решения для решения задачи пользоваться ими не обязательно, достаточно материала из текущей лекции