Вступ до вкладених циклів Python

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

Вкладені петлі

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

for (i=0; i<10; i++)
(
for (j=0; j<10; j++)
(
//This code will execute 100 times.
)
//This code will execute 10 times.
)

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

Вкладені петлі Python

1) Вкладений для синтаксису циклу

Основний синтаксис вкладеного циклу в Python:

for (iterating_variable_1) in (sequence_1): #Outer Loop
for (iterating_variable_2) in (iterating_variable_1/sequence_2): #Inner Loop
(code to execute)

Приклад

for i in range(11): #line 1
for j in range(i): #line 2
print('*', end='') #line 3
print('') #line 4

Вихід:

Виконання потоку

Спробуємо розібратися в потоці виконання вищевказаної програми. У програмі ми використовували дві змінні ітерації i та j для друку візерунка зірок.

Компілятор починається з рядка 1. Він стикається з циклом for і діапазону. Функція діапазону в Python виводить ітерабельний масив цілих чисел від 0 до числа, вказаного в аргументі. Номер аргументу виключається з масиву. У нашому випадку він генерує масив (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10). Тепер компілятор знає, що повинен виконати наступний набір операторів 10 разів.

Коли він переходить до лінії 2, він стикається з іншою функцією циклу та діапазону. Зауважимо, що аргументом цієї функції діапазону є обчислене значення нашої ітераційної змінної i. Отже, він динамічно генерує масив залежно від значення i. Коли i = 0, масив порожній. Коли i = 1, масив дорівнює (0). Коли i = 2, масив дорівнює (0, 1) тощо.

Отже, кількість разів, коли виконується рядок 3, безпосередньо залежить від значення i. Зверніть увагу на частину end = '' inline 3. Це для того, щоб Python не надрукував подачу ліній після кожної зірки. Ми хочемо лише подати лінійку в кінці кожної ітерації зовнішньої петлі. Таким чином, ми явно надрукували подачу рядків у рядку 4 нашого коду.

Тож тепер давайте уважно вивчимо кожну ітерацію нашого вкладеного циклу.

Ітерація зовнішньої петлі 1

I = 0, j = (), output is a blank line.

Зовнішня ітерація петлі 2

I = 1, j = (0), output = *

Зовнішня ітерація петлі 3

I = 2, j = (0, 1), output = **

Зовнішня ітерація петлі 4

I = 3, j = (0, 1, 2), output = ***

.
.
.

Ітерація зовнішньої петлі 10

I = 9, j = (0, 1, 2, 3, 4, 5, 6, 7, 8), output = *********

Ітерація зовнішньої петлі 11

I = 10, j = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9), output = **********

2) Вкладений цикл

Синтаксис

Синтаксис вкладення циклу під час циклу в Python є:

while (expression_1): #Outer loop
(code to execute) #Optional
while (expression_2): #Inner loop
(code to execute)

На відміну від циклу for, цикл while не має попередньо складеної ітерабельної послідовності. Хоча цикл продовжує виконувати код, поки вираз не оціниться як істинний. Отже, розробник повинен завжди пам’ятати про оновлення змінної / виразу ітерації, інакше цикл перейде в режим нескінченного виконання.

Приклад

i=1 #line 1
while(i<=5): #line 2
j=5 #line 3
while(j>=i): #line 4
print(j, end=' ') #line 5
j-=1 #line 6
i+=1 #line 7
print() #line 8

Вихід:

Виконання потоку

Рядок 1 коду встановлює ітераційну змінну зовнішньої петлі на початкове значення. Наступний рядок - початок зовнішньої петлі. Він має вираз i <= 5. Цей вираз оцінюється на справжнє значення після кожної ітерації. Виконання входить у цикл лише у тому випадку, якщо умова справжня. Як тільки умова стає помилковою, цикл припиняється.

Оскільки початкове значення I дорівнює 1, умова у рядку 2 є істинною. Отже, компілятор переходить до рядка 3 і встановлює ітераційну змінну нашої внутрішньої петлі j до 5. У рядку 4 знову є цикл, який виражається як істинний. Отже, компілятор виконує рядки 5 і 6. Потім він повертається назад до рядка 4 і оцінює умову. Якщо умова є істинною, вона знову вводить рядки 5 і 6. Якщо умова стає помилковою, цикл припиняється, а наступні рядки, які потрібно виконати, - це рядки 7 і 8. Те ж саме виконується і для зовнішньої петлі.

Рядки 6 і 7 дуже важливі, оскільки вони оновлюють нашу ітераційну змінну. Без них потік програми входитиме в режим нескінченного виконання, оскільки вирази циклу while завжди призводять до правдивості.

Чи потрібно зламати, продовжувати чи проходити

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

1) Перерва

Ключове слово break означає, що компілятор вискочить з циклу і припинить його виконання.

Приклад

for i in range(5):
for j in range(5):
if i == j:
break
print(j, end='')
print('')

Вихід:

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

2) Продовжуйте

Ключове слово продовження вказує компілятору, щоб пропустити поточну ітерацію циклу і продовжити наступну ітерацію.

Приклад

for i in range(5):
for j in range(5):
if i == j:
continue
print(j, end='')
print('')

Вихід:

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

3) Прохід

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

Приклад

for i in range(5):
for j in range(5):
if i == j:
#I am not sure what to do when i equals j, so for now I will pass.
pass
print(j, end='')
print('')

Вихід:

Висновок

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

Рекомендовані статті

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

  1. Рамки Python
  2. Як встановити Python
  3. Посібник з циклів на Python
  4. Що таке інтерфейс Java?
  5. Різні типи петель з її перевагами
  6. Петлі в VBScript із прикладами