Цикл for у Python: простий спосіб проходити по послідовностях

Короткий зміст статті

У Python цикли є важливою частиною програмування. Серед них цикл for особливо корисний, коли потрібно пройти по елементах колекції, такій як список, рядок або кортеж. Python розглядає послідовності як об'єкти, що піддаються ітерації, а це означає, що ви можете легко пройти по них, використовуючи лаконічний і зрозумілий синтаксис. Якщо ви тільки починаєте працювати з Python або хочете зрозуміти, як працюють ітерації, освоєння циклу for є фундаментальним кроком.

Основна ідея циклу Python цього типу полягає в тому, щоб виконати блок коду один раз для кожного елемента в послідовності. Незалежно від того, чи обробляєте ви дані, перевіряєте значення або друкуєте вихідні дані, цикл for пропонує чітку структуру для передбачуваного повторення дій.

Коли слід використовувати цикл for в Python?

Цикл for ідеально підходить, коли ви вже знаєте, скільки разів потрібно виконати певний блок коду. Наприклад, якщо ви ітеруєте над фіксованим списком елементів, символами в слові або числами в діапазоні, цикл for є найкращим варіантом. Однак, якщо кількість ітерацій залежить від умови, яка може змінюватися з часом, цикл while може бути більш доречним.

Розбір синтаксису циклу for в Python

Давайте розглянемо структуру базового циклу for:

python

for variable in sequence:

# code block to execute

Ось що робить кожна частина:

  • for: Це ключове слово запускає цикл.
  • variable: Цей тимчасовий заповнювач представляє поточний елемент послідовності.
  • in: Ключове слово, яке пов'язує змінну з послідовністю.
  • sequence: Це може бути список, кортеж, рядок або будь-який об'єкт, що піддається ітерації.
  • Відступлені оператори: Вони виконуються один раз за кожну ітерацію.

Простий приклад циклу for в Python із рядками

Рядки в Python — це послідовності символів, і ви можете циклувати їх так само, як і списки. Ось приклад циклу for в Python, який виводить кожен символ слова в новому рядку:

python

word = "tiger"

for letter in word:

print(letter)

Вихідні дані:

css

t

i

g

e

r

Чому це працює: рядки як послідовності

У Python рядок розглядається не як один елемент, а як послідовність символів. Це означає, що ви можете пройти по ньому символ за символом. Цикл for витягує кожен символ по одному і дозволяє виконувати з ним операції. Це одна з найпростіших форм циклів у Python, але також одна з найпотужніших, якщо застосовувати її в більш складних сценаріях, таких як аналіз файлів, фільтрування даних або маніпулювання рядками.

Незалежно від того, чи ви пробігаєте циклом по числах, іменах або літерах у слові, цикл for в Python є гнучким і незамінним інструментом у вашому наборі інструментів для кодування.

Пробігання по списках і кортежах за допомогою циклів for в Python

У Python списки та кортежі є ітерабельними об'єктами, що означає, що їх можна використовувати з циклами для почергового перегляду їх елементів. Одним з найпоширеніших і найпотужніших способів виконання цієї дії є використання циклу for в Python, який призначений для ітерації над послідовностями, такими як списки, кортежі та навіть рядки.

Давайте детальніше розглянемо, як можна працювати зі списками за допомогою циклу for.

python

fruits = ["Mango", "Peach", "Grapes", "Orange"]

for item in fruits:

print(item)

Вихідні дані:

mathematica

Mango

Peach

Grapes

Orange

У цьому прикладі цикл проходить по списку фруктів і виводить кожен елемент. Змінна item представляє кожен елемент списку під час кожної ітерації. Цей тип циклу Python ідеально підходить, коли потрібно виконати дії над кожним елементом колекції.

Тепер застосуємо ту саму логіку до кортежу.

python

numbers = (10, 20, 30, 40)

total = 0

for value in numbers:

total += value

print(f"The total sum is {total}")

Вихідні дані:

python

The total sum is 100

Кортежі також є типами послідовностей і поводяться подібно до списків, коли використовуються всередині циклу for в Python. У наведеному вище прикладі обчислюється сума чисел, що зберігаються в кортежі, шляхом додавання кожного числа до загальної змінної під час циклу.

Розуміння вкладених циклів for в Python

Конструкція циклу for в Python може бути вкладена в інший цикл for. Це корисно, коли потрібно пройти послідовність послідовностей. Наприклад, припустимо, ви хочете вивести кожен символ кожного слова в списку рядків.

python

animals = ["Cat", "Tiger", "Bear"]

for animal in animals:

print(f"Letters in the word {animal}:")

for char in animal:

print(char)

print() # Adds an empty line for better readability

Вихідні дані:

less

Letters in the word Cat:

C

a

t

Letters in the word Tiger:

T

i

g

e

r

Letters in the word Bear:

B

e

a

r

Зовнішній цикл виконується один раз для кожного рядка в списку тварин, тоді як внутрішній цикл повторюється для кожного символу в поточному рядку. Така структура дозволяє виконувати складні ітерації, наприклад, розбирати дані в наборах даних, матрицях або вкладених словниках.

Використання range() з циклами Python

Якщо ви хочете виконати цикл певну кількість разів або створити послідовність чисел, найкращим вибором буде функція range(). Функція range() повертає послідовність чисел, яка зазвичай використовується в циклах, коли кількість ітерацій відома.

Ось простий приклад використання:

python

for index in range(3):

print("Counter:", index)

Вихідні дані:

makefile

Counter: 0

Counter: 1

Counter: 2

У наведеному вище коді range(3) вказує Python генерувати послідовність, що починається з 0 і закінчується (але не включає) 3.

Ви також можете передати більше аргументів до range(). Функція приймає значення початку, кінця та кроку:

python

for step_value in range(2, 12, 3):

print("Stepping:", step_value)

Вихідні дані:

makefile

Stepping: 2

Stepping: 5

Stepping: 8

Stepping: 11

Це вказує Python почати з 2, зупинитися перед 12 і збільшувати на 3. Регулювання параметра step дозволяє пропускати числа або рахувати за певними шаблонами.

Зворотні цикли з від'ємними кроками

Ви також можете рахувати назад, використовуючи від'ємне значення кроку в функції range(). Це особливо корисно, коли ви хочете виконати зворотну ітерацію по послідовності.

python

for countdown in range(50, 0, -10):

print("Countdown:", countdown)

Вихідні дані:

makefile

Countdown: 50

Countdown: 40

Countdown: 30

Countdown: 20

Countdown: 10

Вищезазначений цикл починається з 50 і зменшується на 10 з кожною ітерацією, поки не досягне значення трохи вище 0.

Ефективне використання циклів Python

Для написання чіткого та ефективного коду важливо розуміти, як ефективно використовувати цикли. Незалежно від того, чи працюєте ви зі списком, кортежем або просто повторюєте завдання фіксовану кількість разів, цикл for в Python надає вам гнучкість і зрозумілість для обробки кожного сценарію.

Крім того, пам'ятайте, що ви можете поєднувати типи циклів з іншими операторами управління, такими як break, continue, або навіть комбінувати їх з умовними операторами для розширеного управління.

Додаткова порада: видалення елементів за допомогою циклів

Ви також можете пройти циклом по списках і використовувати умовну логіку для видалення або модифікації елементів. При цьому завжди будьте обережні, щоб не змінити структуру списку під час прямого проходження по ньому. Замість цього використовуйте такі техніки, як розуміння списків, або працюйте з копією списку.

Завдяки всім цим прикладам і технікам ви тепер можете впевнено використовувати цикл for в Python у практичних ситуаціях програмування. Це один з найбільш універсальних інструментів, доступних в Python, і за допомогою лише декількох рядків коду він допомагає ефективно ітерувати над різними типами даних.

Керування потоком за допомогою break, continue та else в циклах Python

Одним з найпотужніших аспектів роботи з циклом for в Python є можливість контролювати, як і коли цикл виконується. Цей контроль забезпечується в першу чергу за допомогою break, continue та, за бажанням, else. Ці оператори, що змінюють потік, дозволяють розробникам приймати рішення під час процесу ітерації, покращуючи як читабельність, так і функціональність їхнього коду.

Використання оператора break у циклі for

Оператор break корисний, коли потрібно зупинити цикл достроково після виконання певної умови. Уявіть, що ви шукаєте певне число в списку. Після того, як це число знайдено, немає сенсу продовжувати сканування решти елементів. У таких випадках break дозволяє циклу вийти, як тільки ціль знайдена.

Розглянемо наступний приклад:

python

values = [10, 20, 30, 40, 50, 60]

target = 30

is_found = False

for val in values:

if val == target:

is_found = True

break

print(f"Is {target} in the list? {is_found}")

Вихідні дані:

vbnet

Is 30 in the list? True

Цей фрагмент коду демонструє, як цикл for в Python може бути завершений в момент знаходження числа 30. Використання break робить операцію ефективною, зупиняючи непотрібні ітерації після досягнення мети.

Пропуск ітерацій за допомогою оператора continue

Іншим зручним механізмом управління є ключове слово continue. Цей оператор вказує циклу пропустити решту блоку коду для поточної ітерації і перейти безпосередньо до наступної.

Припустимо, ви хочете додати тільки позитивні числа зі списку. Ви можете продовжувати пропускати будь-які від'ємні значення під час ітерації.

python

numbers = [3, -1, 7, -5, 8, -2]

positive_total = 0

for number in numbers:

if number < 0:

continue

positive_total += number

print(f"Total of positive numbers: {positive_total}")

Вихідні дані:

yaml

Total of positive numbers: 18

Тут оператор continue пропускає будь-яке від'ємне значення, дозволяючи включати в суму тільки додатні числа. Це демонструє, як структура циклу for в Python може стати більш розумною завдяки контролю потоку.

Використання блоку else з циклами for

Однією з унікальних особливостей Python є можливість приєднати блок else безпосередньо до циклу for. Хоча спочатку це може здатися незвичайним, воно має чітку і корисну поведінку. Блок else виконується тільки в тому випадку, якщо цикл завершує всі свої ітерації без зустрічі break.

Наприклад, розглянемо функцію, яка обчислює суму чисел тільки в тому випадку, якщо всі вони парні. Якщо знайдено будь-яке непарне число, цикл повинен завершитися без додавання подальших значень, а кінцева сума не повинна друкуватися.

python

def sum_if_all_even(numbers):

total_sum = 0

for item in numbers:

if item % 2 != 0:

break

total_sum += item

else:

print("All numbers were even.")

print(f"Sum: {total_sum}")

Тепер давайте протестуємо функцію як з повністю парними, так і зі змішаними списками:

python

sum_if_all_even([2, 4, 6, 8])

sum_if_all_even([2, 4, 5, 8])

Вихідні дані:

mathematica

All numbers were even.

Sum: 20

У другому виклику наявність непарного числа 5 призводить до передчасного завершення циклу, і тому блок else не виконується.

Така поведінка особливо корисна в операціях пошуку, циклах перевірки або будь-якому контексті, де повний, безперервний цикл сигналізує про успіх. Else діє як прапор, що цикл пройшов безперебійно від початку до кінця.

Опанування управління потоком всередині циклів не тільки робить ваш код Python більш ефективним, але й зрозумілішим та більш цілеспрямованим. Незалежно від того, чи ви пропускаєте небажані елементи, передчасно виходите з циклу або використовуєте оператор else для перевірки умов, ці інструменти дають вам повний контроль над ітерацією. Гнучкість циклу for в Python дозволяє творчо та лаконічно вирішувати проблеми в різних програмувальних завданнях.

Ітерація над послідовними типами даних за допомогою циклів for в Python

При роботі з послідовними типами даних, такими як списки, рядки, кортежі та словники, цикл for стає незамінним інструментом. На відміну від використання range(), де ітерація базується на числових діапазонах, використання цих структур даних дозволяє створювати більш змістовні цикли, орієнтовані на вміст.

Почнемо з простого прикладу циклу по списку значень. Уявімо, що ми маємо список різних типів акул:

python

shark_types = ['hammerhead', 'great white', 'dogfish', 'frilled', 'bullhead', 'requiem']

for shark in shark_types:

print(shark)

Цей цикл виводить кожен елемент зі списку shark_types, по одному на рядок. Хоча ми використовували shark як змінну циклу, ви можете назвати її будь-яким описовим ім'ям, яке представляє кожен елемент у послідовності.

Вихідні дані:

nginx

hammerhead

great white

dogfish

frilled

bullhead

requiem

Цикл for проходить по кожному елементу списку, забезпечуючи чіткий і зрозумілий спосіб обробки кожного елемента. Той самий принцип застосовується до інших ітерабельних типів, таких як рядки та кортежі.

Модифікація списків під час ітерації

Послідовні типи також можна поєднувати з range(), щоб контролювати, скільки разів виконується блок коду, або для посилання на значення індексу.

Ось приклад, який додає повторюваний елемент до списку на основі його початкової довжини:

python

shark_types = ['hammerhead', 'great white', 'dogfish', 'frilled', 'bullhead', 'requiem']

for index in range(len(shark_types)):

shark_types.append('shark')

print(shark_types)

Вихідні дані:

css

['hammerhead', 'great white', 'dogfish', 'frilled', 'bullhead', 'requiem', 'shark', 'shark', 'shark', 'shark', 'shark', 'shark']

Кількість доданих елементів відповідає початковій кількості елементів у списку.

Створення списку з нуля

Цикл for у Python також можна використовувати для створення нового списку шляхом динамічного додавання елементів під час кожної ітерації:

python

number_list = []

for number in range(10):

number_list.append(number)

print(number_list)

Вихідні дані:

csharp

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Це базовий приклад того, як будувати послідовності за допомогою ітерації.

Циклічне обходження рядків

Рядки також є послідовностями. До кожного символу в рядку можна отримати доступ за допомогою циклу for:

python

name = 'Sammy'

for character in name:

print(character)

Вихідні дані:

css

S

a

m

m

y

Оскільки рядок розглядається як послідовність символів, цикл Python може повторювати кожну букву окремо.

Цикл через кортежі

Кортежі схожі на списки з точки зору ітерації. Оскільки вони також впорядковані та індексовані, ви можете повторювати їх так само, як списки:

python

fruits = ('apple', 'banana', 'cherry')

for fruit in fruits:

print(fruit)

Ітерація через словники даних

Словники зберігають дані у вигляді пар «ключ — значення». Коли ви ітеруєте словник за допомогою циклу for у Python, за замовчуванням повертаються лише ключі. Щоб отримати доступ до значень, потрібно звертатися до них через ключ.
Такий підхід дозволяє легко проходити по всіх елементах і відображати одночасно ключі та їхні значення.

Послідовні типи даних становлять основу багатьох програм, що працюють із даними. Володіння навичками використання конструкції for loop у Python для обробки таких послідовностей — це базова компетенція для будь-якого розробника. Незалежно від того, чи ви працюєте зі списками, рядками або словниками, розуміння ефективної ітерації дає вам більше контролю та допомагає писати чистіший код.

Переходимо на новий рівень у роботі з циклами Python!

Незалежно від того, чи ви проходите списки, зупиняєте цикл за певних умов або поєднуєте цикли зі словниками — Python надає свободу писати ефективний і зрозумілий код. Використовуючи інструменти break, continue та навіть необов’язковий блок else, Python пропонує гнучкість, що виходить за межі базового рівня.

Тепер, коли ви розібралися зі структурою та логікою циклів у Python, ви готові писати чистіші та розумніші ітерації. Продовжуйте практикуватися та вивчайте while-цикли й розширені керуючі оператори, щоб ще більше зміцнити свої навички роботи з логікою Python.

Залиште свої відгуки

Поділіться своїми думками та допоможіть нам покращитися! Ваш відгук важливий для нас.

Завантажте своє фото