Привіт! В цьому уроці ми розглянемо основні концепції програмування мовою Python. Почнемо з функції print — однієї з найбільш базових функцій у Python.
Функція print() у Python використовується для виведення значень на екран. Вона дозволяє виводити рядки, числа тощо. Формат використання функції print() такий:
У прикладі нижче вже написано рядок коду “My name is Mike!” спробуй запустити його натиснувши кнопку Run ▶ на панелі інструментів. Також можеш видалити код та спробувати написати його ще раз самостійно, а після того запустити.
Також можна виводити на екран декілька значень, перераховуючи їх через кому. У наступному прикладі спробуємо вивести на екран рядки “My name is Mike!”, “I am”, а також число 25.

Примітка: як бачиш, числа можна писати без лапок.
print() також дозволяє задавати роздільник між значеннями, за допомогою параметра sep. За замовчуванням роздільником буде пробіл. В результаті виконання цієї функції на екрані будуть виведені значення 2, 45, 25 та 56, розділені дефісами.

Також ми можемо вказати, як саме хочемо завершити наш вивід, скориставшись параметром end. У наступному прикладі завершимо виведення знаком оклику.

Змінні та типи даних
Уявимо, що ми написали програму, де в кожному виводі повторюється імʼя Mike. Тобто ми звертаємось до одного і того ж імені декілька разів.

В такому разі буде доречно помістити повторюване слово в “контейнер” та викликати, коли нам це потрібно (наприклад, коли ми хочемо його надрукувати). Цей контейнер і називається змінною.
У Python змінна — це ім'я, яке вказує на обʼєкт у пам'яті. Змінні в Python можуть бути будь-якого типу даних, як-от числа, рядки тощо.
Ось приклад змінної в Python, яка містить число:
У цьому прикладі “x” — це ім'я змінної, яка вказує на число 15 в памʼяті. Загалом коли ми створюємо змінну “x” і присвоюємо їй значення 15, в оперативній памʼяті комп'ютера не зберігається саме число 15, але для зберігання цього числа зарезервоване місце. Тобто, змінна “x” є посиланням на певну область памʼяті (адресу), де зберігається число 15. Насправді збереження тільки адреси обʼєкту у памʼяті, а не самого обʼєкту дозволяє значно зекономити памʼять.
Далі ми можемо використовувати цю змінну, щоб виконувати різні операції з цим числом. Наприклад, ми можемо вивести його на екран:

В результаті цього коду буде виведено 15. Ми також можемо змінити значення змінної, просто присвоївши їй нове значення. Наприклад, 20:

Тепер x вказує на число 20 в памʼяті.
Отже, змінна у програмуванні — це місце, де ти можеш зберігати числа, слова або інші речі, які тобі потрібні для роботи з програмою. Це, як кошик, в якому ти можеш зберігати різні речі, щоб потім взяти їх знову і використати.
Коли ти створюєш змінну, ти даєш їй імʼя, яке можна використовувати для звернення до неї пізніше. Якщо зберігаєш число, наприклад 5, у змінній з ім'ям “x”, то потім можеш використовувати “x” у своїй програмі, щоб отримати це число знову. Власне це ми і робили, коли хотіли вивести значення “x” у попередньому прикладі.
Таким чином, можемо переписати наш перший приклад таким чином:
У цьому коді створюється змінна з назвою “name”, яка містить значення “Mike”. Через знак = ми присвоюємо значення нашій змінній. Змінна “name” може бути використана у подальшому в коді для звернення до цього значення.
У Python імена змінних мають деякі обмеження. Варто знати про них, щоб правильно називати змінні у своїх програмах. Розгляньмо ці обмеження детальніше.
У більшості мов програмування, включно з Python, змінна може мати різні типи даних, що змінюватимуться залежно від значення, що їй присвоюється. Наприклад, якщо ми присвоїмо змінній значення "15", як у прикладі вище, то Python автоматично визначить тип даних цієї змінної як ціле число (integer). У прикладі з іменем “Mike” — це набір символів, або рядок.
Отже, змінні допомагають зберігати значення, які можуть змінюватися в ході виконання програми, а типи даних надають контекст для того, як ці значення можуть бути використані й опрацьовані.
У Python є кілька основних типів даних:
- Числа (цілі числа, дійсні числа, комплексні числа)
- Рядки (ланцюжки символів)
- Булеві значення (True або False)
- Списки (впорядкований набір значень)
- Кортежі (впорядкований набір значень, які не можна змінювати)
- Словники (набір пар ключ-значення)
Ось кілька прикладів цих типів даних:



Найчастіше будемо використовувати цілі та дійсні числа.
З рядками ми вже частково знайомі, адже створили змінну name = “Mike”.


Примітка: як бачиш, для створення рядків можна використовувати як одинарні, так і подвійні лапки. Зазвичай, подвійні потрібні тоді, коли використовується апостроф. Наприклад, далі ми створили цілочислову змінну age і хочемо вивести на екран фразу “I’m 18”, використавши змінну age. Оскільки наша фраза містить апостроф, то краще використати подвійні лапки:

Також у Python є три основні структури даних, що використовуються для організації та збереження даних: списки, кортежі та словники. Кожна з цих структур має свої особливості та призначення.
Вище ми вже розглянули типи даних — і тобі могло впасти в око, що списки, кортежі та словники також до них належать. То чому ж тоді ми виділяємо їх окремо? Все просто: типи даних визначають самі дані та доступні операції над ними, тоді як структури даних визначають спосіб організації та збереження цих даних у пам'яті комп'ютера.
Список (list) — це впорядкований набір значень, який можна змінювати. Списки містять різні типи даних, включаючи числа, рядки, інші списки тощо. У списку кожен елемент має свій порядковий номер, який допомагає знайти елемент у списку. Цей номер зветься індекс (і завжди починається з 0). Списки у Python створюються за допомогою квадратних дужок [ ].

У цьому прикладі ми створили три списки: перший містить 5 елементів (цілі числа від 1 до 5), другий — 3 елементи (три рядКИ), третій — 4 елементи (різноманітні типи даних: булеве значення, рядок, ціле число, дійсне число).
У наступній клітинці ми виводимо нульовий елемент списку “x”, памʼятаючи, що кожен елемент має свій порядковий номер та ці порядкові номери починаються з 0. Візуально для нас значення “1” є першим у списку, але технічно це елемент з порядковим номером (індексом) 0. Відповідно елемент “2” має індекс 1 тощо.
Кортеж (tuple) — це впорядкований набір значень, який не можна змінювати. Кортежі схожі на списки, але вони створюються завдяки круглим дужкам ( ) замість квадратних [ ]. Оскільки кортежі не можна змінювати, вони зазвичай використовуються для зберігання константних значень (фіксованих, які не можна змінити, наприклад, координат точок на площині, місяців року, математичних формул тощо).

Словник (dictionary) — це структура даних, яка містить набір пар ключ-значення. Кожен елемент словника складається з ключа та відповідного йому значення. Словники можна змінювати та розміщувати в них різні типи даних: числа, рядки, списки та інші словники. Словники створюються за допомогою фігурних дужок { }.

У першому рядку коду, ми створюємо словник з трьома парами "ключ-значення": "name": "John", "age": 30 і "city": "New York". У цьому словнику "name" є ключем, а "John" — відповідним значенням. Те саме стосується і ключів "age" та "city".
У другому рядку коду ми створюємо інший словник з трьома парами "ключ-значення": "fruit": "apple", "color": "red" і "taste": "sweet". У цьому словнику "fruit" є ключем, а "apple" — відповідним значенням. Так само і "color" та "taste" відповідно.
Словники можуть бути надзвичайно корисними в програмуванні, коли потрібно зберігати й обробляти дані зі зв'язаними ключами та значеннями. Також у словниках можна додавати, видаляти та змінювати ключі та значення під час виконання програми.
Кожна з цих структур даних має свої особливості та застосування. Списки та кортежі використовуються для зберігання впорядкованих наборів значень (наприклад, список студентів у класі чи список кольорів веселки), тоді як словники використовуються для зберігання наборів пар ключ-значення (скажімо, про користувачів, як у прикладі вище, де ключами є їхні name, age та city, а значеннями — інформація про них). Розуміння цих структур даних є важливим для ефективного програмування на Python.
Бібліотека random
У своїй роботі програмісти користуються різними засобами, щоб зробити свої програми кращими і зручнішими для використання. До таких засобів належать і бібліотеки (або модулі). Погляньмо, що тут нам пропонує Python.
Бібліотека у Python — це набір коду, який можна використовувати для різних завдань. Такий набір може містити функції, які допомагають виконувати різні операції, класи, що допомагають описати об'єкти, та інші інструменти.
Тепер розглянемо бібліотеку random. Уяви її як спеціальну “книгу” з набором інструментів, яка допомагає компʼютеру генерувати числа та інші речі випадковим чином.
Бібліотека містить різні функції, які дозволяють отримати випадкове число або вибрати випадковий елемент зі списку. А ще за допомогою цієї бібліотеки можна перемішати елементи списку. Це може бути корисно, наприклад, у грі або під час розв’язання математичних задач.
Основні функції цієї бібліотеки такі:
- random() — генерує випадкове число з діапазону [0.0, 1.0).
- randint(a, b) — генерує випадкове ціле число з діапазону [a, b].
- choice(seq) — повертає випадковий елемент з послідовності seq.
- shuffle(seq) — перемішує послідовність seq.
Отже, щоб використовувати функції з бібліотеки у Python, її потрібно імпортувати у свою програму.
Імпортування бібліотеки у Python — це процес підключення коду з цієї бібліотеки до своєї програми. Для імпортування бібліотеки у Python використовують спеціальну команду "import".
Наприклад, щоб згенерувати випадкове число від 1 до 10, можна скористатись функцією randint():

Пригадуєш гру камінь-ножиці-папір?
Ми можемо її відтворити за допомогою функції модуля random - choice(seq), яка повертає випадковий елемент з послідовності seq.
У цьому коді ми створюємо список options, що містить варіанти гри "камінь-ножиці-папір". Потім ми використовуємо функцію random.choice() для вибору випадкового елемента зі списку options. Результат зберігається у змінній computer_choice. Наприкінці ми виводимо на екран повідомлення про те, який варіант обрав комп'ютер.
Зауваж, що при кожному запуску програми результат може бути різним, оскільки відбувається випадковий вибір.
Практичною частиною цього курсу буде програма, що допомагає обрати фільм на вечір. Зістав список з усіх фільмів, які хотілося б переглянути і попроси програму випадково видати тобі фільм із цього списку (пригадай гру камінь-ножиці-папір).
*Примітка: у цьому та наступному уроці практичні завдання двох рівнів складності, які напряму пов’язані з типовими завданнями python розробників. Ми рекомендуємо тобі виконати принаймні завдання першого рівня, але якщо ти не боїшся труднощів, то сміливо берись за виконання завдання й поглибленого рівня.
Технології, з якими працюватимеш в уроці, можуть бути для тебе зовсім нові — тому радимо тобі спершу переглянути відео, де завдання повністю виконує наша авторка (із озвучкою від нашої чарівної редакторки Ніки). Можна подивитись увесь процес, а потім починати роботу, або ж відкрити відео та паралельно виконувати завдання власноруч.
Покрокова інструкція:
1. Відкрий середовище Google Colab.
2. За необхідності увійди в свій Google-акаунт (справа вгорі є кнопка Увійти).
3. Обери опцію “Файл”, а далі пункт “Новий записник”.
4. Вітаємо! Записник було створено, можеш починати писати код.
5. За необхідності можеш додати клітинку, у якій писатимеш код, натиснувши на кнопку “+ Код”.
6. Імпортуй бібліотеку random, яка містить функції для генерації випадкових чисел та вибору елементів зі списку.
7. Створи список movies, що містить назви фільмів, які хотілося б подивитися.
8. Використай функцію random.choice() з бібліотеки random (памʼятаєш, ми її імпортували?), щоб випадковим чином вибрати один елемент зі списку movies.
9. Згенероване випадкове значення запиши у змінну random_movie. Виведи значення змінної random_movie на екран за допомогою функції print().
Так виглядатиме результат виконання практичного завдання:

Оператори та вирази
Оператори виразів використовуються для виконання різних математичних та логічних операцій зі значеннями. Вони дозволяють програмістам створювати складні вирази, які можуть включати умови, цикли, порівняння, арифметичні операції та інше.
У Python оператори діляться на такі групи:
- Арифметичні оператори (+, -, *, /, %, **)
- Оператори присвоювання (=, +=, -=, *=, /=)
- Оператори порівняння (==, !=, >, <, >=, <=)
- Логічні оператори (and, or, not)
- Оператори ідентифікації (in, not in, is, is not)
- Оператори членства (in, not in, is, is not)
- Побітові оператори
Звісно, запамʼятовувати їх усі одразу не потрібно — достатньо з ними ознайомитись та спробувати у своєму коді. Ресурс W3schools має гарну статтю з детальним описом усіх операторів у Python.
Ось, наприклад, як виглядає оператор порівняння ==.
Cпробуй запустити його натиснувши кнопку Run ▶ на панелі інструментів:
Як бачиш, ми перевірили на рівність змінні x, y та z. x та y виявились різними, бо 5 не дорівнює 10, а змінні x та z — однакові, про що каже виведене друге значення True. Справді, 5 = 5.
Примітка: для порівняння використовується два знаки рівності, бо один знак рівності слугує для присвоєння значення змінній (згадай name = “Mike”).
Умовні конструкції
Важливою складовою як Python, так і будь-якої іншої мови програмування є умовні конструкції. Вони допомагають написати програму, яка може ухвалювати рішення залежно від умови, яка їй передається.
Умовні конструкції у Python дозволяють програмістам написати код, який робить різні дії залежно від того, чи є певна умова істинною чи ні. Найпоширенішою умовною конструкцією є if-else:

Розгляньмо приклад з вибором одягу для погоди за допомогою умовної конструкції if-else. Нехай змінна weather містить слово, що описує погоду на вулиці (наприклад, "сонячно", "хмарно", "дощ"). Ми можемо написати такий код:
У цьому коді ми використали умовну конструкцію if-else, щоб залежно від погоди на вулиці визначити, який потрібен одяг. Якщо weather дорівнює "сонячно", виконується перший блок коду з командою print("Одягай футболку та шорти!"). Якщо weather дорівнює "дощ", виконується другий блок коду з командою print("Одягай плащ та гумові чоботи!"). Інакше, якщо weather не дорівнює жодному з цих значень, виконується останній блок коду з командою print("Не знаю, що одягнути...").
Спробуй почергово замінити слово "дощ" на "сонячно" та "хмарно" у змінній if weather = = та запустити код натиснувши кнопку Run ▶ на панелі інструментів.
Додаткові функції для роботи зі списками
Ми вже працювали зі списками раніше, але тепер поглибимо знання і дізнаємось про знаходження довжини списку z. Її можна отримати за допомогою вбудованої функції len(). Тож щоб знайти довжину списку z, можна використати такий код: len(z)
Цей код повинен повернути значення 4, оскільки список z містить 4 елементи. Важливо зазначити, що довжина списку визначається кількістю елементів у ньому (далі приклад з кодом для копіювання).
А ось це приклад як той самий код виглядає в Google Colab, якщо його заранити:

Працюємо далі з програмою вибору фільму на вечір. Зістав список з усіх фільмів, які хотілося б переглянути і попроси програму випадково обрати тобі щось із нього (пригадай гру камінь-ножиці-папір).
Також додай умовну конструкцію, яка перевірятиме, чи список фільмів непорожній (тобто його довжина має бути більша 0: len(movies) > 0). Якщо ж список порожній, має виводитись повідомлення про це.
Технології, з якими працюватимеш в уроці, можуть бути для тебе зовсім нові — тому радимо тобі спершу переглянути відео, де завдання повністю виконує наша авторка (із озвучкою від нашої чарівної редакторки Ніки). Можна подивитись увесь процес, а потім починати роботу, або ж відкрити відео та паралельно виконувати завдання власноруч.
Покрокова інструкція:
1. Відкрий середовище Google Colab.
2. За необхідності увійди у Google-акаунт (справа вгорі є кнопка Увійти).
3. Обери опцію “Файл”, а далі пункт “Новий записник”.
4. Вітаємо! Записник було створено, можеш починати писати код.
5. За необхідності можеш додати клітинку, у якій писатимеш код, натиснувши на кнопку “+ Код”.
6. Імпортуй бібліотеку random, яка містить функції для генерації випадкових чисел та вибору елементів зі списку.
7. Створи список movies, що містить назви фільмів, які хотілося б переглянути.
8. Перевір, чи список movies містить хоча б один елемент за допомогою умовної конструкції if.
9. Якщо умова істинна (тобто список містить хоча б один елемент), то за допомогою функції random.choice() обери випадковий елемент зі списку movies і збережи його у змінній random_movie.
10. Якщо умова хибна (тобто список порожній), то виведи повідомлення "Немає фільмів для вибору!".
11. Виведи згенероване значення random_movie на екран.
12. Таким чином код обирає випадковий елемент зі списку movies, якщо він не порожній, та виводить його на екран. Якщо ж список порожній, то виводиться повідомлення про це.
Так виглядатиме результат виконаного завдання:

Молодець! Тепер ти вмієш працювати зі структурами даних, бібліотекою random і, якщо викона_ла поглиблений рівень, з операторами й умовними конструкціями. Ходімо далі покращувати твою програму :)