Мова програмування Python: цикли

Мова програмування Python: цикли

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

Python: цикл з постумовою

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


У мові програмування Python цикли з постумовою while мають наступний синтаксис:

1. While (умова):

2. вираз

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

Використання циклу while в "Пайтон" на прикладі

Розсмотуємо цикл while. Python досить цікаво структурує його ітерації:

a = 0
while a < 7:
print(""A"")
a = а + 1


Ми оголосили змінну "а" і задали їй нульове значення. Потім задали умову "" while a < 7 "", тобто поки змінна "" а "" буде менше ніж число "" 7 "", то наш цикл буде виконуватися до тих пір, поки не стане помилковим.

А помилковим (тобто здійснить вихід з циклу) він стане тоді, коли змінна стане більше числа "" 7 "". Щоб це сталося, вона щоразу збільшується на 1, що ми вказуємо в рядку "" а = а + 1 "".

Якщо запустити цю конструкцію, то буква "А" "буде виведена 7 разів у стовпчик!

A
A
A
A
A
A
A

Нескінченний цикл while в Python

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

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

Давайте поглянемо на наступний фрагмент коду Python. Цикли в даному випадку ітеруються нескінченно (після символу "#" йде коментар):


number = 1 # оголошуємо змінну number і присвоюємо їй значення 1

while number < 10: # створюємо постумову, в якій number менше 10

print 'Hello' # виконуємо умову (друкуємо повідомлення "Hello")

Таку програму не варто поспішати компілювати, тому як вона буде виконуватися нескінченно. Ми поставили такі умови, за яких ніколи не буде помилкового значення: умова "number < 10" в даному випадку незмінна і істинна, тому ітерація буде здійснюватися постійно, виводячи N-е кількість повідомлень "Hello". Для того, щоб зупинити процес вічної компіляції, потрібно буде натиснути комбінацію клавіш Ctrl + C в shell.

Python: синтаксис. Цикли while і for

Як вже було сказано вище, в мові програмування "Пайтон" існує кілька способів організації повторення групи виразів. На допомогу приходить цикл for, який трохи відрізняється від свого колеги while, тому як його конструкція дещо складніша, ніж просто постумова. Про універсальність даного циклу говорити не будемо, так як її просто немає, проте можна відзначити, що цикл for працює набагато швидше, ніж while. Безліч шляхів для вирішення і швидкодія даної конструкції трохи виграють у циклу з постумовою, тому його набагато частіше використовують для виконання безлічі тривіальних завдань.


Які завдання стоять перед циклом for? Безсумнівно, ті ж самі, що і у while - ітерувати якісь процеси. У програмках, виконаних на "Пітоні", широко застосовується цикл for, який здатний здійснювати реалізацію обходу заданої безлічі елементів і виконувати у своєму тілі різні ітерації над ними. Можливості цієї конструкції можна застосовувати при обробці рядків або списків точно так само, як і будь-який інший об 'єкт, що ітерується.

Приклад використання циклу for в Python

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

Давайте розглянемо невеликий приклад, де ми будемо виконувати відповідні для цієї дії (після символу "#" йде коментар):

Spisok_chisel = [5, 15, 25, 35, 45, 55, 65, 75, 85, 95] # оголосили масив, що містить 10 цифр

count = 0 # створили лічильник з нульовим значенням


for elements in spisok_chisel: # перебираємо масив і записуємо його в elements

Spisok_chisel[count] = elements + 3 # число з масиву збільшуємо на три

count = count + 1 # переходимо до наступного числа за індексом

Результат виконання вищенаведеної конструкції буде таким:

spisok_chisel = [8, 18, 28, 38, 48, 58, 68, 78, 88, 98]


У нашому прикладі є змінна count, яка нам необхідна для того, щоб відзначати змінювані значення в масиві "spisok_chisel". У змінній count записуються значення індексу кожного елемента в масиві (кожне число у списку). Змінна "elements" пов 'язує отримані значення у списку. У циклі for ми спостерігаємо, як реалізується обробка кожного чисельного об 'єкта в списку. Всередині циклу кожному числовому об 'єкту з індексом "count" додається сума поточного ітерованого елемента і трійки. Потім наш індекс "count" збільшується на один, а потік реалізації програми повертається в початок оголошення конструкції for. Таким чином, цикл буде працювати до тих пір, поки не обробить кожен елемент в масиві, заданий за умовою. Якщо будь-який елемент відсутній, але заданий за умовою, процес циклу буде завершено. Звернемо увагу на ще один нюанс: якщо не написати рядок "count = count + 1", то, незважаючи на те, що об 'єкти масиву успішно обробляться, результат постійно буде додаватися до першого числового об' єкта c нульовим індексом.

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

Як обробити рядкове значення в Python за допомогою конструкції for?

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

for змінна

у змінній зберігається результат роботи циклу

in змінна _ 2

ключове слово "in" - це обов 'язкова умова при роботі з циклом "for". З змінної _ 2 витягуємо значення, яке будемо ітерувати. Для наочності і ясності давайте розглянемо невеликий приклад, як працювати і перебирати рядки в Python:

char = "програмування" # Оголосили змінну і присвоїли їй рядкове значення

for slovo in char: # Створюємо змінну slovo, в якій будуть зберігатися індекси перебору зі змінної char

print (slovo, end = "^") # Виводимо slovo і після кожної літери вставляємо символ - пташку.

Результат роботи скрипту:

П р о г р а м м і р о в а н і

Оператор continue

Оператор continue реалізує перехід на виконання наступного циклу, заданого за умовою, незважаючи на залишок у тілі циклу. Використовувати оператор continue можна у двох циклах - for і while.

Розгляньмо приклад:

for count in "повторимо кожну літеру, крім про"

if count == ‘o’:

continue

print (count * 2, end=’’)

Результат буде наступний:

Ппвтрриимм ккаажждуюю ббууккввуу,, ккррммее

Коли обробник знайшов букву "про" в рядку "повторимо кожну букву, крім о", то виконання програми відразу було перенаправлено на рядок після слова "continue", де за умовою було задано дублювати кожну букву.

Оператор break

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

Розглянемо невеликий приклад роботи оператора break:

for count in "повторимо кожну літеру, крім про"

if count == ‘o’:

break

print (count * 2, end=’’)

Результат буде наступний:

пп

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

Магічне слово else

У циклі будь-якого виду можна застосувати оператор else. Для чого він потрібен? Він робить перевірку на те, чи був здійснений вихід з циклу методами break або ж звичайним шляхом. Блок з заданими правилами всередині else почне реалізацію тільки за тієї умови, якщо вихід з циклу був здійснений без застосування конструкції break.

Розгляньмо невеликий приклад:

for count in "привіт світ":

if count == ‘я’:

break

else:

print ("B вашій фразі немає літери" я ")

Результат виконання скрипту:

У вашій фразі немає букви "я"

Приклади циклів зі зворотним порядком у мові програмування Python

Як реалізується в Python зворотний цикл? Давайте уявимо, що пишемо програму, яка повинна розпізнавати символьну сходинку і друкувати її в зворотному порядку. Як це реалізувати?

 
 

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

Якщо використовуються вкладені цикли, Python пропонує наступний синтаксис:

for змінна in послідовна змінна:

for змінна in послідовна змінна

дія (дії)

дія (дії)

До особливостей вкладених циклів можна віднести те, що всередині циклу будь-якого типу можна використовувати також будь-який тип циклу! Це означає, що в циклі while (або for) може бути вкладений цикл for або знову ж while і навпаки.