Цикл 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 … 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
Коментарі (7)
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ
Semen Рівень 5
3 червня 2025
Між, іншим, вже десь після 57 клітинки, плюс-мінус, точно не пригадую, сукупна к-ть зерна виходить більша, ніж все людство виростило за час свого існування, приблизно, звісно )))...
Tony Рівень 5
30 травня 2025
Питання: чому не правильно вказується range(1,65), якщо на шаховій дошці 64 клітинки і мені потрібно вивести значення починаючи з 1-ї а не з нульової А ви в коментарях зазначаєте взагалі range (0,64) т.т. по 63 включно?!??!?
Arthur_X Рівень 28
18 січня 2025
Обратні зворотні цикли: range() може генерувати числа в зворотньому порядку...
Olena Ruban Рівень 29
13 жовтня 2024
Добрий день. питання по прикладу в циклах: звідки ми взяли fruit ?
DmitriyK_py Рівень 44
16 жовтня 2024
Для кожного значення з список_значений відбуваються дві речі: Змінній циклу (в даному випадку fruit) (яка вказана після слова for) присвоюється чергове значення зі список_значень. Потім виконується блок команд де fruit при кожному циклі буде наступним об'єктом переліку
Olena Ruban Рівень 29
27 жовтня 2024
тобто ми просто придумали нове слово fruit і тепер ним обозначаємо перелік всіх fruits у списку?
DmitriyK_py Рівень 44
28 жовтня 2024
так, хоч глечиком назви тільки в піч не став