Перед тим, як навчитися писати цикл while, давайте розберемо що таке взагалі ті цикли?
Цикл – це процес, який повторюється кілька разів або нескінченно. В нашому житті існує багато прикладів, от кілька з них:
Для програмування цикли дуже важливі, тому що дозволяють зробити великі обчислення, обробити й великий потік даних.
Шпигуни та сищики допоможуть нам розібратись в цих заплутаних циклах while.
Цей урок заснований на книгах про детективів і шпигунів. Особливо на книгах Альфреда Хічкока.
Альфред Хічкок – англійський кінорежисер, продюсер, сценарист. Працював у Великій Британії та США. Його ім’я пов’язане зі становленням жанру «трилерів». Окрім фільмів, Хічкок також написав серію цікавезних детективів для підлітків “Три детективи”.
Якщо любите детективний жанр, то однозначно рекомендую почитати Хічкока. Три детективи, хоч і неписані давно, але читаються легко і з перших сторінок затягують в історію, сповнену пригод, загадок і неймовірних поворотів сюжету
While
While – один з найбільш універсальних циклів в Python, тому трохи повільний. Виконує команди в середині циклу до тих пір, поки умова циклу істинна.
Тобто цей цикл складається з :
- умови (доки умова вірна, цикл працює)
- набору команд, які треба виконувати стільки разів, скільки нам дасть це зробити умова.
- лічильника (не завжди є в циклі, але в усіх перших прикладах він буде). Це спеціальна змінна, яка бере участь в умові та регулює, скільки разів запуститься цикл
1: Давайте розглянемо простий приклад. Отже, наші перші програми будуть за мотивами книжок Хічкока. В книжці “Таємниця семи папуг” юні детективи шукають папугу свого знайомого. У книжці сюжет дуже закручений, але наша перша програма буде просто казати, скільки папуг знайшли детективи:
i = 0
print ('Ця програма буде рахувати папуг')
while i<7:
i = i + 1
print(f"Ура! {i}-го папугу знайшли юні детективи!")
В даному прикладі i- лічильник. Він рахує папужок допоки їх не набереться 7 штук. Тобто цикл буде працювати, поки i <7 істина.
Звертайте увагу на відступи. Як і в умовах, в них може критися помилка, якщо кількість пробілів не однакова.
2: Давайте тепер зробимо програми за мотивами іншої книги Хічкока: “Таємниця одноокого кота”. В цій книжці юні детективи беруться за справу таємничих зникнень м’яких іграшок у вигляді котиків з цирку. Спочатку котів було 12. І наша програма буде рахувати, скільки котів лишилось.
i = 12
print ('Ця програма буде рахувати котів')
while i>0:
i = i - 1
print(f"Ще котика викрали! {i} котів лишилось")
print ('Більше не лишилось котів')
3: За допомогою циклів можна робити дуже серйозні розрахунки.
Ось приклад програми, яка виводить всі числа, що діляться на 7 від 0 до 1000:
i = 0
while i<1000:
i = i + 1
if (i%7==0):
print(i)
4: Також дуже легко вивести на екран табличку множення, наприклад на 4:
i = 0
while i<10:
i = i + 1
res=i*4
print(f"4*{i}={res}")
Оператор continue
Оператор continue починає наступний прохід циклу, минаючи тіло циклу, що залишилось (працює у циклах for або while)
5: Давайте напишемо програму-шифр. Сенс шифру буде в тому, щоб з заданого рядка прибрати всі голосні і надрукувати тільки приголосні. Це дуже простий шифр, тому як текст все-одно читається легко. (В даному прикладі я спеціально пропустила одну важливу деталь. Спробуєте знайти маленьку помилку в програмі?)
i = 0
st= ('Якщо з тексту викинути всі голосні літери, його все-одно можна буде зрозуміти')
result_str=''
while i<len(st):
if st[i]=='о' or st[i]=='а' or st[i]=='у' or st[i]=='я' or st[i]=='і' or st[i]=='и' or st[i]=='е' or st[i]=='ю' or st[i]=='є' :
i=i+1
continue
result_str+=st[i]
i=i+1
print (result_str)
Додаткові завдання
1: За прикладом завдання 4 напишіть програму, яка запитує у користувача число і виводить табличку додавання на це число
2: Напишіть програму, яка буде розраховувати, на скільки вистачить кишенькових грошей. Користувач вводить суму кишенькових грошей і скільки хоче витрачати на тиждень. Програма показує, скільки грошей залишиться в кінці кожного тижня, наприклад:
Скільки у вас кишенькових грошей: 380
Скільки ти хочеш тратити за тиждень : 60
В 1-й тиждень у вас залишиться 320
В 2-й тиждень у вас залишиться 260
В 3-й тиждень у вас залишиться 200
В 4-й тиждень у вас залишиться 140
В 5-й тиждень у вас залишиться 80
В 6-й тиждень у вас залишиться 20
3: Напишіть програму для виводу таблички ділення на якесь з однозначних чисел. Приклад для числа 8:
Домашнє завдання
1: Створіть програму, яка запропонує користувачеві ввести число. Програма повинна вивести на екран всі парні (ті, що діляться на 2) числа від 1 до цього числа. Приклад (можна виводити числа у стовпчик, не в рядок):
Введіть число: 10
2, 4, 6, 8
2: Створіть програму, яка запропонує користувачеві ввести число. Програма повинна вивести на екран всі непарні числа від 1 до цього числа.
Введіть число: 10
1, 3, 5, 7, 9
3: Створіть програму, яка запропонує користувачеві ввести число. Програма повинна вивести на екран всі числа від 1 до цього числа, які діляться на 6.
Введіть число: 22
6, 12, 18
4: Напишіть програму, яка виводить табличку множення на 7.
Результат має бути, наприклад такий:
7 * 1 = 7
7 * 2 = 14
7 * 3 = 21
…
Level Up!
1: За допомогою програми-шифру, яку писали на занятті (Завдання 5 описано вище в документі), зашифруйте по одній цитаті видатних ІТ-шників: Стіва Джобса та Ілона Маска (цитату обери сам зі списку внизу)
(Стівен Пол Джобс – американський підприємець, винахідник і промисловий дизайнер, який отримав широке визнання в якості піонера ери інформаційних технологій. Один із засновників, голова ради директорів і CEO корпорації Apple. Один із засновників і CEO кіностудії Pixar.)
(Ілон Рів Маск – американський інженер, підприємець, винахідник і інвестор; доларовий мільярдер. Співзасновник компанії PayPal; засновник, співвласник, генеральний директор і головний інженер компанії SpaceX; генеральний директор і головний ідейний натхненник компанії Tesla. Ілон Маск довів, що польоти в космос можуть здійснювати приватні компанії. Він разом зі своїми працівниками розробили та запустили у космос кілька ракет. А електро автомобілі Тесла його компанії випереджають час і б’ють всі рекорди продажів. Якщо хочеш дізнатися більше подивися це відео )
Цитати Стіва Джобса:
- Комп’ютер – це найдивовижніший інструмент, з яким я коли-небудь стикався. Це велосипед для нашої свідомості.
- Краще взяти і винайти завтрашній день, ніж переживати про те, що вчорашній був так собі.
- Колись Пабло Пікассо сказав: «Хороші художники копіюють, великі художники крадуть». Ми ніколи не соромилися красти геніальні ідеї в інших.
- Інтуїція – дуже потужна штука, більш потужна, ніж інтелект.
- Починай з малого, але мрій про велике. Не займайся одночасно занадто багатьма речами. Займися спочатку небагатьма простими справами, і поступово переходь до складніших. І завжди думай про майбутнє.
Цитати Ілона Маска:
- Коли Генрі Форд зробив дешеві, надійні машини, люди сказали: “Та ну, чим поганий кінь?”. Це був величезний ризик, на який він пішов, і це спрацювало.
- Наполегливість дуже важлива. Ви не повинні здаватися, якщо тільки не змушені здатися.
- Я думаю, звичайні люди можуть вибрати надзвичайне життя.
- Я міг або спостерігати, як це відбувається, або бути частиною цього.
Підказка: щоб працювало правильно треба або прибрати всі лапки або почитати що таке екранування у гугл. Екранування допомагає працювати з текстом з лапками
2: Напишіть програму, яка порахує суму всіх чисел від 1 до 1000
3: У цій програмі запропонуйте користувачу ввести число від 0 до 1000. Програма повинна вивести на екран всі числа, які діляться на 3 та 5 (одночасно на 3 і 5) від 1 до цього числа.
Програма повинна перевірити, що користувач ввів число від 1 до 1000. Програма повинна вивести помилку, якщо користувач ввів число не від 0 до 1000
4: Напишіть програму, яка виводить повністю всю табличку множення (на всі цифри від 1 до 9). Дивіться приклад в завданні 4
5: Детективам треба бути дуже наполегливими, щоб розслідувати справи
Тож потренуємо наполегливість з наступним прикладом
Потрібно бути дуже акуратним з умовою виходу з циклу. Інакше вийде нескінченний цикл. Складемо такий на прикладі дитячої гри “Купи слона.” Єдина суть гри в тому, щоб дістати свого друга, постійно пропонуючи йому “Купити слона”. На всі відповіді опонента відповідають “Всі говорять ______, а ти купи слона”
В результаті програма повинна працювати приблизно так:
купи слона
не хочу
Всі говорять “не хочу”, а ти купи слона
мені не треба слон
Всі говорять “мені не треба слон”, а ти купи слона
сам купи
Всі говорять “сам купи”, а ти купи слона
Програма має працювати нескінченно (тільки закрити вікно з програмою зможе її зупинити) Підказка: while True: – це умова, яка буде виконуватись постійно
В прикладі фіолетовим написано те, що вводить юзер.