Break та Continue в циклі – це секретні чіт-коди, які допомагають його завершити у потрібний момент, або перейти на початок. Давайте розберемося з цими диво-командами у цьому уроці.
Don’t BREAK the rules and CONTINUE studying або секретні ходи в циклі
Мікрогра перед стартом
Break і continue, розбираємося
У Python break і continue оператори можуть змінювати потік звичайного циклу.
Оператор break завершує цикл. Цей оператор, як лінивець, йому ліньки робити ті команди в циклі, і він його закінчує
Оператор continue використовується для пропуску решти коду всередині циклу, він одразу переходить на старт циклу, щоб знову перевірити умову. Цикл не закінчується.
Оператор break допоможе вийти навіть з нескінченного циклу. Він цикл перериває і починають працювати команди, які ідуть після циклу.
Оператор continue просто пропускає решту команд в циклі і повертається на умову.
Обидва ці оператори як правило сховані за якоюсь умовою. Варто дуже обережно з ними поводитися. Адже всі команди, які будуть в циклі й будуть іти після break або continue, комп’ютер просто проігнорує наче їх там і не було…
Ось ще одна крута візуалізація того, як це працює. Це тема не проста. А тому, якщо у вас будуть проблеми з завданнями цього уроку, раджу повертатись саме до цієї картинки:
Break на практиці
1: Уявіть, що ви випустили кілька постів у своїй улюбленій соцмережі та ваші пости стали настільки популярні, що збирають коментарі й лайки від людей з усього світу! Давайте напишемо програму, яка визначатиме, якою мовою написано коментар до посту. Мову будемо визначати за притаманними саме їй літерами.
В домашці буде завдання для визначення багатьох мов, а тут давайте зробимо код для визначення української мови.
comment="Цікавезне відео! Ти молодець. Продовжуй в тому ж дусі!! Радію, що в нашій країні, є такі талановиті блогери! Ґречно дякую за контент"
i=0
while i< len (comment):
print(f"Буква: {comment[i]} ")
if (comment[i]=='Ї' or comment[i]=='ї' ):
print ("Це Українська мова")
break
i+=1
Які ще литери притаманні українській мові ? Додайте перевірки на них у програму
Запишіть на листочку, скільки букв перевірить програма і що надрукує. Чому так вийшло?
Приклад з continue
2: Розгляньте приклад роботи програми розкладу юного блогера: програма виводить розклад для кожного дня тижня від 0 (понеділок) до 6 (неділя). Юний блогер зайнятий всі дні, крім одного.
– Визначте, у який день блогер має вихідний
– В які дні блогер відвідує Клуб шахів ? В які знімає блог ?
– Чому запис з останньої умови не виводиться для 5-го дня?
day=0
while day<7:
print(f"Розклад блогера. День {day}")
if day==5:
day+=1
continue
if day==0 or day==2 or day==4:
print ("Клуб шахів")
if day==1 or day==3:
print ("Знімає відео для блогу")
if day==6 or day==5:
print ("Плавання і теніс і програмування")
day+=1
3: Складіть програму для вашого розкладу гуртків (якщо не відвідуєте гуртків, складіть розклад хобі)
Коментарі
Коментарі – це якесь пояснення, яке програмісти додають у код. Програма їх не бачить, але вони допомагають розібратись в великих програмах. Бо інколи напишеш програму і потім гадаєш, що вона таке робить і навіщо там ота змінна…
Давайте розберемо коментарі на прикладі програми на тему дуже старенького і милого мультика “Як Петрик П’яточкін слоників рахував”. Назва каже сама за себе. Слоненят рахуємо до десяти. Поїхали!
el=1 # змінна, для кількості слоненят
while el<=10:
'''
Цей код буде рахувати слоненят до 10-ти,
як у старому мультику
'''
print(f"{el} слоненятко") # виводимо на екран номер слоненятка
el+=1 # збільшуємо лічильник на 1
Погляньте на код. Адже коментарі дуже допомагають розібратись у програмі.
Коментарі бувають :
# в один рядок
або
”’
Коментар у декілька рядків
”’
А ось так виглядають коментарі в реальних програмах:
Додаткові завдання на урок
1: Використавши картинку, спробуйте оновити програму з першого завдання, щоб вона могла перевіряти ще на одну мову. Алфавіт мови зі спеціальними символами можете загуглити в інтернеті.
Буква Ї, яка використана в прикладі окрім української, зустрічається ще в Старослов’янській церковній мові. Але нею зараз ніхто не говорить, тим паче в інтернеті. Тому Ї годиться для перевірки. Які ще літери зустрічаються тільки в українській? Додайте їх в перевірку(дивіться картинку)
2:За прикладом розкладу юного блогера, напишіть свій розклад позашкільних занять (уроки писати не треба). Використайте continue, щоб позначити ваш вільний день. Якщо ви не відвідуєте гуртки, вигадайте гуртки й розклад для себе. (1-2 гуртки буде достатньо)
3: Напишіть програму, яка виводить всі букви слова “Instagram” до тих пір, доти доки не зустріне букву “g” – як тільки дійшли до неї – цикл спиняється.
4:Використовуючи коментар в один рядок, напишіть, свою улюблену соціальну мережу. Якщо такої немає, напишіть, що любите спілкуватись наживо.
5: Використовуючи коментар в кілька рядків, напишіть, імена своїх улюблених блогерів у стовпчик (достатньо 2-3). Якщо не маєте улюблених блогерів, напишіть імена друзів.
Домашнє завдання
1: Використовуючи коментарі:
- Напишіть короткий жарт. Закоментуйте його за допомогою коментаря в один рядок
- Напишіть інший жарт. Закоментуйте його за допомогою коментаря в декілька рядків
2: Ця програма виводить номер місяця(січень=0, грудень=11) і після нього малює сердечко. Виберіть один або кілька місяців, які вам не подобаються. Змініть програму так, щоб після такого місяця сердечко не виводилось (Скористайтеся continue і не забудьте додати month+=1 в умову, щоб цикл не був нескінченним)
month=0
while month<12:
print(f"Місяць номер: {month}")
print("..OO.OO..")
print(".OOOOOOO." )
print(".OOOOOOO." )
print("..OOOOO.." )
print("...OOO..." )
print("....O...." )
month+=1
3: Напишіть цикл, який буде виводити числа від 1 до 100. Як тільки програма дійде до числа 13, вона має спинитися (використайте команду break).
4: Соцмережа twitter стала колись дуже популярною через те, що всі пости в ній були короткі, не більше 140 символів. Давайте пофантазуємо, як би виглядали твори українських класиків у цій мережі. Для цього у змінну twit запишіть якийсь вірш чи фразу якогось видатного письменника (скопіюй з інтернету), програма має виводити тільки перші 140 символів. Нижче подано програму, яка вже виводить твіт, але всі рядки в ній переплутані. Переставте рядки й програма працюватиме правильно!
twit="""
Садок вишневий коло хати,
Хрущі над вишнями гудуть,
Плугатарі з плугами йдуть,
Співають ідучи дівчата,
А матері вечерять ждуть.
Сім’я вечеря коло хати,
Вечірня зіронька встає.
Дочка вечерять подає,
А мати хоче научати,
Так соловейко не дає.
Поклала мати коло хати
Маленьких діточок своїх;
Сама заснула коло їх.
Затихло все, тілько дівчата
Та соловейко не затих."""
result=""
i+=1
result+=twit[i]
print (result)
while i<140:
i=0
5: Уявіть, що ви випустили кілька постів у своїй улюбленій соцмережі і ваші пости стали настільки популярні, що збирають коментарі й лайки від людей з усього світу! Давайте напишемо програму, яка визначатиме, якою мовою написано коментар до посту.
Допишіть першу програму з класної роботи для визначення мови у фразах нижче. Додайте код для визначення ще двох мов з таблички (оберіть їх самостійно) В табличці ви знайдете ключові букви, які допоможуть визначити мову
Німецька мова | ä, ö, ß |
Французька мова | æ, œ, ÿ |
Іспанська мова | ñ, ¡, ¿ |
Польська мова | ą, ę, ł, ż |
Програма має мати ОДИН цикл, який перевірятиме все. Фразу скопіюйте звідси й вставте як значення змінної comment
Ось фрази для перевірки:
- Este pequeño bloguero es fantástico. Buen trabajo!
- Mon cœur est conquis. Super blog
- Der beste Blogger auf YouTube. Daran besteht kein Zweifel. Danke, die Veröffentlichung ist nur eine Bombe!
- Nie mam wystarczająco dużo słów, aby opisać, jak fajny okazał się ten film!
Приклад коду і роботи:
Level Up! (ускладнені завдання).
1: Зробімо тренажер з математики. Програма буде давати користувачу приклади на додавання чисел від 1 до 100 кожний. Якщо користувач відповів правильно, програма має похвалити та дати ще один приклад. Якщо він помилиться – програма каже про це і більше не запитує.
Підказка: завершити роботу циклу можна командою break
import random
print("Потренуймося додавати!")
while True:
a1=random.randint(1,100)
a2=random.randint(1,100)
# допиши свій код після цього рядка
Цікаво знати! Random – це бібліотека, яка дозволяє створювати випадкові числа.
Приклад роботи:
Потренуймося додавати!
Приклад: 55+33= 88
Молодець!
Приклад: 74+10= 84
Молодець!
Приклад: 20+68= 88
Молодець!
Приклад: 68+92= 33
Ти програв
2: Додайте в попередню програму змінну Рахунок. Вона буде показувати, скільки прикладів розв’язано правильно. В кінці роботи програми виведіть цю змінну на екран.
3: Додайте в попередню програму рівні для тренажера: новачок, середній і профі.
Якщо користувач вибере “новачок”, він буде додавати два числа, кожне з яких від 1 до 10.
Якщо користувач вибере “середній”, він буде додавати два числа, кожне з яких від 1 до 100.
Якщо користувач вибере “профі”, він буде додавати два числа, кожне з яких від 1 до 1000.
4: Змініть попередню програму так, щоб програма виводила час, за який були вирішені приклади. Для цього треба:
а) Об’явити бібліотеку на початку програми: import time
б) Записати час старту: start_time = time.time()
в) В кінці визначити кількість секунд, яка знадобилась на вирішення прикладів (запишіть це в змінну і виведіть на екран): time.time() – start_time
Готові до наступних кроків ? Тисніть тут, щоб подивитися список уроків.