You are on page 1of 14

1.

Функціональні можливості розширення циклічного оператору for


2. Основні відмінності між типами колекцій у Python
https://russianblogs.com/article/1747262940/
3. Типізація мов програмування
Типізація мов програмування — ‌ ‌‌це‌‌те,‌‌як‌р
‌ ізні‌‌мови‌‌розпізнають‌‌типи‌‌змінних.
Вона‌‌визначає,‌‌як‌‌ви‌‌будете‌‌працювати‌‌с‌‌типами‌‌змінних:‌‌‌чи потрібно їх
задавати спочатку, чи можна змінювати і так далі.
Існує статична і динамічна типізація. Особливість мов програмування зі
статичною типізацією у тому, що перевірка типів починається на стадії
компіляції. Компілятори шукають помилки ще до запуску програми, і вам не
потрібно щоразу запускати її, щоб з'ясувати, що пішло не так. Завдяки цьому
статично типізовані мови програмування найчастіше швидше. Крім того, тип
змінної можна призначити лише один раз. У свою чергу мови з динамічною
типізацією шукають помилки на стадії виконання. У них можна задати різні
типи однієї і тієї ж змінної, і вони гнучкі.
Існує сильна і слабка типізація. У слабко типізованих мовах програмування
можна змішувати різні типи даних. Так код виходить коротшим — мова
«намагається» сама виконувати операції перетворення з різними типами. Втім,
у такому разі не завжди ясно, як поведеться програма. При сильній типізації,
мова не дозволяє змішувати різні типи - тобто, якщо ви позначили змінну як
число, то додати до неї рядок вже не вдасться. Мови‌‌із‌‌сильною‌‌типізацією‌
‌надійніше.‌‌
Існує явна і неявна типізація. У мовах програмування з явною типізацією типи
змінних і значень функцій, що повертаються, потрібно задавати. Це довше, але
так простіше визначати, що означають усі дані, а програмісту не доведеться
запам'ятовувати чи записувати окремо кожне значення. При неявній типізації
тип змінної визначається інтерпретатором або компілятором, тому записи
таких мов коротше. Іноді вони дозволяють вручну вказувати типи значень.
Різні категорії можуть перетинатися. Зазвичай мові програмування
притаманне одне значення кожної групи: може бути сильним чи слабким,
явним чи неявним. Але є кілька винятків. Так, Python з анотаціями може
підтримувати явну типізацію, а мова D, навпаки, неявну. С# підтримує
динамічну типізацію завдяки ключовим словам dynamic і var, Delphi завдяки
типу Variant, а С++ — за допомогою бібліотеки Boost і має одночасно риси
мови з сильною і слабкою типізацією.
4. Основна відмінність мови Python від інших сучасних мов програмування
Мова загального призначення:
 Desktop-програми (FreeCAD)
 Web- програми (Flask)
 Програми для IOT (Internet of things) (MicroPython)
 Мова може бути вбудованою (Blender)
 Мова може бути розширеною (можна визивати код, написаний на інших
мовах)
Мультипарадигмова мова:
 Процедурна
 Об’єктно-орієнтована
 Функціональна
Мультиплатформна мова:
 Windows
 Linux
 Embedded platforms (IOT)
5. Клас та його структурні елементи у Python
Об'єктно-орієнтоване програмування (ООП) – парадигма програмування, у
якій основними концепціями є поняття об'єктів та класів.
Клас - тип, що описує пристрій об'єктів. Об'єкт – це екземпляр класу. Майже
все в Python є об'єктом зі своїми властивостями та методами. Клас подібний
до конструктора об'єктів або «креслення» для створення об'єктів.
Щоб створити клас, необхідно використовувати ключове слово class. Щоб
зрозуміти значення класів, необхідно зрозуміти вбудовану функцію __init__().
Усі класи мають функцію __init__(), яка завжди виконується під час ініціалізації
класу. Потрібно використовувати функцію __init__() для визначення значень
властивостей об'єкта або інших операцій, які необхідно виконати при
створенні об'єкта. Функція __init__()викликається автоматично щоразу, коли
клас використовується для створення нового об'єкта.
Об'єкти можуть містити методи. Методи в об'єктах – це функції, що належать
об'єкту.
Параметр self є посиланням на поточний екземпляр класу та використовується
для доступу до змінних, що належать до класу.
class за визначенням не можуть бути порожніми, але якщо у вас з якоїсь
причини є class визначений без вмісту, вставте pass оператор, щоб уникнути
помилки.
6. Конструктори та деструктори у мові програмування Python
Конструктор – це спеціальна функція, яка автоматично виконується під час
створення об'єкта класу. Функція Python __init__ має діяти як конструктор.
Конструктор Python виконується автоматично під час створення об'єкта. Ця
функція конструктор може мати аргументи.
Деструктор також є спеціальним методом, який запускається автоматично при
виході з об'єкта з області видимості. У Python як деструктор використовується
метод __del__() . Він викликається, коли посилання на об'єкт були видалені,
тобто коли об'єкт очищується збирачем сміття. Деструктор викликається після
завершення програми або коли посилання на об'єкт видаляються, тобто. коли
лічильник посилань стає рівним нулю, а не коли об'єкт виходить за межі
області видимості.
7. Еко-система мови програмування Python
Добрий день. Умовно внутрішні і зовнішні елементи. Внутрішні - IDE, дод.
модулі, зв'язки з іншими мовами, тощо. Зовнішні - конкуренти, споживачі,
зв'язок з зовнішніми сервісами
8. Сутність та особливості IDE “PyCharm”/”Visual Studio”
IDE – Integrated Development Environment:
 Code editor
 Compiler(C/C++/C#/Java) or Interpreter (Python, Perl etc)
 Debugger
 Profiler
 Static code analyzer
9. Життєвий цикл програмного забезпечення
Життєвий цикл програмного забезпечення – період часу, який починається з
прийняття рішення про необхідність створення програмного продукту і
закінчується у його повного закриття. Життєвий цикл програмного
забезпечення - це умовна схема, що включає окремі етапи, які становлять
стадії процесу створення ПЗ. У цьому кожному етапі виконуються різні дії.
Основні етапи життєвого циклу ПЗ включають наступні:
 Визначення бізнес-потреби (Business need definition)
 Передпродаж (Presale):
o відсутня у продуктових компаніях, характерний лише для моделі
аутсорсу
 Ініціація (Initiation)
 Проектування та дизайн (Elaboration and Design)
 Імплементація (Implementation)
 Тестування (Testing)
 Впровадження (Deployment)
 Супровід (Support)
 Смерть продукту (Product Death)
10. Відмінності між модулем, пакетом та бібліотекою у мові програмування
Python
Модуль – це файл, який містить визначення та інструкції Python. Ім'я файлу –
це ім'я модуля з доданим суфіксом .py.
Пакет складається з декількох файлів (або модулів) Python навіть може
включати бібліотеки, написані на C або C ++. Замість того, щоб бути одним
файлом, це ціла структура папок. Всі пакети Python повинні містити файл
__init__.py. При імпорті пакета в сценарії ( import package ), то __init__.py
скрипт буде працювати, що дає вам доступ до всіх функцій у пакеті.
Термін бібліотека – це просто загальний термін для купи коду, який був
розроблений для використання багатьма додатками. Він надає деякі спільні
функції, які можна використовувати конкретними програмами. Коли
модуль/пакет/щось "публікується", люди часто посилаються на нього як на
бібліотеку. Часто бібліотеки містять пакет або кілька пакетів, але це може бути
навіть один модуль.
11. Мови програмування високого та низького рівнів.
Низькорівневе програмування це те, чиї інструкції дуже близькі до машинної
мови. Програми призначені для роботи з конкретним обладнанням, оскільки
інструкції призначені для конкретної архітектури. Якщо ми напишемо
програму на низькому рівні та перенесемо її на іншу машину, вона не
розпізнає її, оскільки вона несумісна з інструкціями.
Мови середнього рівня були першими, хто народився в результаті еволюції
мов низького рівня. Ці мови знаходяться десь посередині між мовами
низького та високого рівня, тому що, хоча вони використовують відносно
прості та природні інструкції, у програміста є доступ до обладнання так само,
як мова низького рівня. Таким чином, програми можуть звертатися до
системних регістрів, а програміст може працювати з адресами пам'яті.
На найвищому рівні мови програмування використовують чіткі вказівки з
використанням природної мови. Мови високого рівня (C++, Python) призначені
для безперебійної роботи на будь-якій машині незалежно від
використовуваного вами обладнання. Це можливо завдяки компіляторам і
перекладачам, які зазвичай спочатку включені в операційні системи. Не має
значення якою мовою написана програма, якщо код пройшов через
компілятор, і ми маємо необхідний інтерпретатор, ми можемо виконати їх на
будь-якій операційній системі, використовуючи будь-яке обладнання.
12. Опис основних команд у SQL для створення, редагування та видалення
даних в таблиці
SHOW DATABASES: SQL команда, яка відповідає за перегляд доступних баз
даних.
CREATE DATABASE: Команда для створення нової бази даних.
USE: За допомогою цієї SQL-команди USE <database_name> вибирається база
даних, необхідна для подальшої роботи з нею.
DROP DATABASE: Стандартна команда SQL для видалення цілої бази даних.
SHOW TABLES: За допомогою цієї нескладної команди можна побачити всі
таблиці, доступні в базі даних.
CREATE TABLE: SQL команда для створення нової таблиці.
Може знадобитися створити обмеження для певних стовпців у таблиці. Під час
створення таблиці можна задати такі обмеження:
осередок таблиці не може мати значення NULL;
первинний ключ - PRIMARY KEY (col_name1, col_name2, ...);
зовнішній ключ - FOREIGN KEY(col_namex1, …, col_namexn)
INSERT: Команда INSERT INTO <table_name> у SQL відповідає за додавання
даних до таблиці. При додаванні даних до кожного стовпчика таблиці не
потрібно вказувати назви стовпців.
UPDATE: SQL команда для оновлення даних таблиці.
DELETE: SQL команда DELETE FROM <table_name> використовується для
видалення даних з таблиці.
DROP TABLE: А так можна видалити всю таблицю повністю.
SELECT: для отримання даних із вибраної таблиці. Наступною командою
можна вивести всі дані із таблиці SELECT * FROM <table_name>;
SELECT DISTINCT: У стовпцях таблиці можуть міститися дані, що повторюються.
Використовуйте SELECT DISTINCT для отримання неповторних даних.
WHERE: Ви можете використовувати ключове слово WHERE у SELECT для
вказівки умов у запиті. У запиті можна задавати такі умови:
порівняння тексту;
порівняння чисельних значень;
логічні операції AND (і), OR (або) та NOT (заперечення).
GROUP BY: Оператор GROUP BY часто використовується з агрегатними
функціями, такими як COUNT, MAX, MIN, SUM та AVG для групування вихідних
значень.
HAVING: Ключове слово HAVING було додано до SQL, оскільки WHERE не може
використовуватися для роботи з агрегатними функціями.
ORDER BY: ORDER BY використовується для сортування результатів запиту зі
спадання або зростання. ORDER BY відсортує за зростанням, якщо не буде
вказано спосіб сортування ASC або DESC.
BETWEEN: BETWEEN використовується для вибору значень даних із певного
проміжку. Можуть бути використані числові та текстові значення, а також дати.
LIKE: Оператор LIKE використовується у WHERE, щоб встановити шаблон
пошуку схожого значення. Є два вільні оператори, які використовуються в LIKE:
% (жоден, один або кілька символів);
_ (один символ).
IN: За допомогою IN можна вказати кілька значень для оператора WHERE:
JOIN: JOIN використовується для зв'язку двох або більше таблиць за
допомогою загальних атрибутів усередині них. На зображенні нижче показані
різні способи об'єднання SQL. Зверніть увагу на різницю між лівим зовнішнім
об'єднанням та правим зовнішнім об'єднанням.
Агрегатні функції Це не зовсім основні команди SQL, проте знати їх теж
бажано. Агрегатні функції використовуються для отримання сукупного
результату, що відноситься до даних, що розглядаються:
COUNT(col_name) - повертає кількість рядків;
SUM(col_name) - повертає суму значень у цьому стовпці;
AVG(col_name) - повертає середнє значення даного стовпця;
MIN(col_name) - повертає найменше значення даного стовпця;
MAX(col_name) – повертає найбільше значення даного стовпця.
Вкладені підзапити - це SQL-запити, які включають вирази SELECT, FROM та
WHERE, вкладені в інший запит.
13. Фреймворки. Приклади для мови програмування Python
Найкращі фреймворки містять набори інструментів, бібліотек, що корисні для
розробника модулів. У них реалізовані завдання, що часто зустрічаються, і
закладена чітка структура коду. Це полегшує роботу: дозволяє зосередитися
на логіці проекту, не витрачати час на дії, що повторюються, які вже є в
асортименті інструментів.
Наприклад, у фреймворки спочатку можуть бути закладені:
 шаблони проектування з маршрутизацією URL-адрес;
 валідація введення форм;
 міграція БД;
 ORM;
 механізми шаблонизації виведених форм;
 захист від підробки міжсайтових запитів та різних типів ін'єкцій;
 авторизація, аутентифікація, зберігання та вилучення сеансів;
 конфігурація підключення до баз даних.
Важливо, що фреймворки забезпечують незалежність від систем управління
базами даних: той самий код може працювати без внесення змін із різними
серверами баз даних.
В даний час існують десятки фреймворків для Python. За типами їх
розподіляють на фулстекові, мікрофреймворки та асинхронні.
Фуллстек - це універсальні монолітні платформи, що мають інструменти для
повного циклу розробки.
Асинхронні та мікрофреймворки не мають великої кількості додаткових
шаблонів і модулів, тому вимагають більше зусиль для формування коду.
https://dev.ua/ru/news/top-7-freimvorkov-python-dlya-razrabotki-veb-prilozhenii
14. Компілятори та інтерпретатори 
Компілятор транслює високорівневу мову на машинну. Коли користувач пише
код мовою високого рівня і хоче його виконати, перш ніж це може бути
зроблено, буде використаний спеціальний компілятор . Компілятор спочатку
сканує всю програму, а потім транслює її в машинний код, який буде
виконаний комп'ютерним процесором, після чого будуть виконані відповідні
завдання.
Інтерпретатори не дуже відрізняються від компіляторів. Вони також
конвертують високорівневі мови в бінарні еквіваленти, що читаються
машиною. Щоразу коли інтерпретатор отримує на виконання код мови
високого рівня, то перед тим, як сконвертувати його у машинний код, він
конвертує цей код у проміжну мову. Кожна частина коду інтерпретується та
виконується окремо та послідовно, і якщо в якійсь частині буде знайдена
помилка, вона зупинить інтерпретацію коду без трансляції наступної частини
коду.
Головні відмінності між компілятором та інтерпретатором:
 Інтерпретатор бере одну інструкцію, транслює та виконує її, а потім бере
наступну інструкцію. Компілятор транслює всю програму відразу, а потім
виконує її.
 Компілятор генерує звіт про помилки після трансляції всього, тоді як
інтерпретатор припинить трансляцію після першої знайденої помилки.
 Компілятор, порівняно з інтерпретатором, вимагає більше часу для
аналізу та обробки мови високого рівня.
 Крім часу на обробку та аналіз, загальний час виконання коду
компілятора є швидшим у порівнянні з інтерпретатором.
15. Тестування програмного забезпечення 
https://uk.wikipedia.org/wiki/
%D0%A2%D0%B5%D1%81%D1%82%D1%83%D0%B2%D0%B0%D0%BD%D0%BD
%D1%8F_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BD
%D0%BE%D0%B3%D0%BE_%D0%B7%D0%B0%D0%B1%D0%B5%D0%B7%D0%BF
%D0%B5%D1%87%D0%B5%D0%BD%D0%BD%D1%8F
https://www.edsd.ru/ru/uslugi/testirovanie_po
https://logrocon.ru/news/testing_is
16. Системи клієнт-сервер 
«Клієнт-сервер» — це обчислювальна або мережева архітектура, в якій
завдання або мережеве навантаження розподілені між постачальниками
послуг, які називаються серверами, та замовниками послуг, які називають
клієнтами.
У технології клієнт-сервер є дві головні дійові особи:
 клієнт - комп'ютерний або мобільний пристрій при керуванні
користувачем, який відправляє запит або команду серверу (наприклад,
введення пошукового запиту Google теж відноситься до цього процесу);
 сервер - апаратний або хмарний сервер, який приймає запит та виконує
його (обробка даних на сайтах, додатках та сервісах відбувається через
веб-вузли).
Особливості такої моделі полягають у тому, що користувач надсилає певний
запит на сервер, де той системно обробляється і кінцевий результат
надсилається клієнту. У можливості сервера входить одночасне
обслуговування кількох клієнтів.
Якщо одночасно надходить більше одного запиту, такі запити встановлюються
в певну чергу і сервером виконуються по черзі. Іноді запити можуть мати свої
пріоритети. Частина запитів з вищими пріоритетами постійно
виконуватимуться в першочерговому порядку!
Параметри, які можуть бути реалізовані на стороні сервера:
 Зберігання, захист та доступ до даних
 Робота з клієнтськими запитами
 Процес надсилання відповіді клієнту
Параметри, які можуть бути реалізовані на стороні клієнта:
 Майданчик з надання користувальницького графічного інтерфейсу;
 Формулювання запиту до сервера та його подальше відправлення;
 Отримання результатів запиту та надсилання додаткової групи команд
(запити на додавання, оновлення інформації, видалення групи даних).
Архітектура системи клієнт-сервер формулює принципи віртуального
спілкування між локальними комп'ютерами, проте правила і принципи
взаємодії перебувають усередині протоколу.
Мережевий протокол – це особливий набір правил, виходячи з якого
виконується точне взаємодія між комп'ютерами всередині віртуальної мережі.
Види мережевих протоколів:
 TCP/IP – сукупність протоколів передачі. TCP/IP – це особливе
позначення усієї мережі, яка функціонує на основі протоколів TCP, а
також IP.
 TCP – вид протоколу, який є сполучною ланкою для встановлення
якісного з'єднання між двома пристроями, передачі даних та верифікації
їх отримання.
 IP – протокол, до якого входить коректність доставки повідомлень за
обраною адресою. У цьому інформація ділиться на пакети, які можуть
постачатися по-різному.
 MAC – вид протоколу, виходячи з якого відбувається процес верифікації
мережевих устройств. Всі пристрої, які підключені до мережі Інтернет,
містять свою оригінальну MAC-адресу.
 ICMP – протокол, який відповідає за обмін даними, але не
використовується для передачі інформації.
 UDP – протокол, керуючий передачею даних, але дані проходять
верифікацію при отриманні. Цей протокол працює швидше, ніж
протокол TCP
 HTTP – протокол передачі інформації (гіпертексту), з урахуванням якого
функціонують всі сьогоднішні сайти. У його можливості входить процес
запитування необхідних даних у віртуально віддаленої системи (файли,
веб-сторінки та інше).
 FTP – протокол передачі з особливого файлового сервера на ПК
кінцевого пользователя.
 POP3 – це класичний протокол простого поштового з'єднання, який
відповідає за передачу пошти.
 SMTP – вид протоколу, який може встановлювати правила передачі
віртуальної пошти. Він відповідальний за передачу та верифікацію
доставки, а також оповіщення про можливі помилки.
Є 2 види клієнт-сереверних архітектур:
1. Двохрівнева, що складається відразу з 2 вузлів:
сервер, який відповідає за отримання вхідних запитів та надсилання
відповіді користувачу, застосовуючи при цьому власні ресурси системи;
клієнт, який може надавати графічний інтерфейс користувача.
Особливості роботи у тому, що у сервер надходить певний запит, потім
його обробляють і дають безпосередньо, без додаткового застосування
групи зовнішніх ресурсів.
2. Трирівнева система складається з використання таких компонентів:
надання інформації - графічний користувальницький, прикладний об'єкт
у вигляді сервера програми;
менеджмент ресурсів – сервер БД, який може надавати дані.
Особливість роботи у тому, що кілька серверів можуть обробляти
клієнтські запити. Процес розподілу операцій може істотно знизити
навантаження на сервер.
Трирівнева архітектура може трансформуватися до багаторівневої
можливості установки групи додаткових серверів. Подібна віртуальна
архітектура дозволяє істотно підвищити ефективність функціонування
інформаційних систем, а також виконати оптимізований розподіл
частини її програмно-апаратних ресурсів.
17. Конкатенація та її реалізація 
Конкатенація – це процес поєднання елементів однієї структури даних.
Оператор '+' може використовуватись для об'єднання двох списків. Він додає
один список у кінець іншого списку і створює на їх основі новий.
Наївний метод для об'єднання списків - при цьому використовується цикл для
обходу другого списку. В результаті елементи другого списку додаються в
перший. У ньому зберігається об'єднаний список.
List Comprehension – це альтернативний спосіб об'єднання списків. Найчастіше
він використовується для створення списку елементів на основі вже існуючого.
Цей метод використовує цикл for для обробки та обходу списку поелементно.
Метод extend() можна використовувати для об'єднання двох списків. Він
виконує ітерацію та додає елементи у вихідний список, розширюючи його
лінійно.
Оператор '*' у Python може бути використаний для об'єднання двох списків.
Наприклад, розглянемо список my_list = [1, 2, 3, 4].
Вираз *my_list замінить посилання на список його елементів. Таким чином
воно розпаковує елементи списку.
https://www.internet-technologies.ru/articles/sposoby-konkatenacii-spiskov-v-
python.html
Строки: https://pythonim.ru/string/konkatenatsiya-strok-v-python
18. Основні особливості функцій у мові програмування Python  
19. Область видимості змінних у мові програмування Python.
Місце, де ми можемо знайти змінну, а також отримати до неї доступ, якщо
потрібно, називається областю видимості змінної. Області видимості змінних
поділяються на 4 типи: вбудована область видимості, глобальна область
видимості в межах модуля, локальна область видимості охоплюючих функцій,
локальна область видимості всередині функцій.
20. Локальні та глобальні змінні.
Глобальні змінні – це ті, які оголошені за межами функції і мають глобальну
область дії. Вони можуть бути доступними як всередині, так і за межами
функції.
Локальні змінні - це ті, які визначені всередині функції, і її область дії
обмежена лише цією функцією. Вони ініціалізуються всередині функції і
належать лише цій конкретній функції. До них не можна отримати доступ за
межами функції. Якщо ми спробуємо використовувати цю локальну змінну за
межами функції, то програма виведе помилку.
21. Цикл while та можливості його використання у мові програмування Python

Цикл while використовується для повторного виконання блоку операторів,
поки не буде задоволена задана умова. А коли умова стає хибною,
виконується рядок відразу після циклу в програмі. За допомогою
оператора break ми можемо зупинити цикл, навіть якщо умова while істинна.
За допомогою оператора continue ми можемо зупинити поточну дію та
продовжити наступну.
22. Особливості використання списків у мові програмування Python
Списки - це один з 4 вбудованих типів даних у Python, що використовуються
для зберігання колекцій даних, решта 3 - це Tuple, Set і Dictionary, всі з різними
властивостями. Список може містити різні типи даних.
Списки створюються за допомогою квадратних дужок. Також можна
використовувати конструктор list() під час створення нового списку.
Елементи списку змінюються та допускають дублювання значень. Елементи
списку індексуються, перший елемент має індекс [0], другий елемент має
індекс [1] тощо.
Щоб визначити, скільки елементів у списку, використовуйте функцію len().
Щоб змінити значення певного елемента, зверніться до номера індексу. Щоб
змінити значення елементів у певному діапазоні, визначте список із новими
значеннями та зверніться до діапазону номерів індексів, до яких ви хочете
вставити нові значення.
Щоб додати елемент в кінець списку, використовуйте метод append(). Щоб
вставити елемент в список за вказаним індексом, використовуйте
insert()метод. Щоб додати елементи з іншого списку до поточного списку,
використовуйте метод extend(). Елементи будуть додані до кінця списку.
Метод remove() видаляє вказаний елемент. Метод pop() видаляє зазначений
індекс. Якщо ви не вкажете індекс, pop()метод видалить останній елемент.
Метод clear()очищає список. Список все ще залишається, але в ньому немає
змісту. Об'єкти списку мають sort()метод, який за умовчанням сортує список в
алфавітно-цифровому порядку за зростанням. Для сортування за спаданням
використовуйте аргумент ключового слова reverse = True. Метод reverse()
змінює поточний порядок сортування елементів в протилежний.
Ви можете виводити елементи списку, використовуючи for або while цикли.
23. Особливості використання словників у мові програмування Python  
Словники використовуються для зберігання значень даних у парах ключ:
значення. Словник є впорядкованим набором, що змінюється і не допускає
дублювання. У словниках не може бути двох елементів з одним і тим самим
ключем. Словники пишуться з фігурними дужками та мають ключі та значення.
Значення в елементах словника може бути будь-якого типу. На елементи
словника можна посилатися за допомогою імені ключа.
Щоб визначити, скільки елементів у словнику використовуйте len()функцію.
24. Відмінності використання списків, кортежів та словників у мові
програмування Python  
https://russianblogs.com/article/1747262940/
25. Патерни проектування у ООП Python. Наведіть приклад та поясніть його.
- Паттерни проектування - це опис взаємодії об'єктів та класів, адаптованих
для вирішення спільної задачі проектування у конкретному контексті.
Зазвичай виділяють такі шаблони патернів:
- - Патерни, що породжують: Abstract Factory, Builder, Factory method,
Prototype, Singleton
- - Структурні патерни: Adapter, Bridge, Composite, Decorator, Façade, Flyweight,
Proxy
- - Паттерни поведінки: Chain of Responsibility, Command, Interpreter, Iterator,
Mediator, Memento, Observer, State, Strategy, Template method, Visitor
- BUILDER:
- - Builder - патерн, що породжує об'єкти. Цей патерн відокремлює
конструювання складного об'єкта від його уявлення, так що в результаті того
самого процесу конструювання можуть виходити різні уявлення. Builder
використовується, коли: * Алгоритм створення складного об'єкта не повинен
залежати від того, з яких частин складається об'єкт і як вони стикуються між
собою; *процес конструювання повинен забезпечувати різні уявлення
об'єкта, що конструюється. Плюси та мінуси патерну та його застосування:
*дозволяє змінювати внутрішнє уявлення продукту(Об'єкт Builder надає
розпоряднику абстрактний інтерфейс для конструювання продукту, за яким
він може приховати уявлення та внутрішню структуру продукту, а також
процес його складання. Оскільки продукт конструюється через абстрактний
інтерфейс, то для зміни внутрішнього уявлення достатньо лише визначити
новий вид будівельника); *ізолює код, що реалізує конструювання та
уявлення (Паттерн покращує модульність, інкапсулюючи спосіб
конструювання та уявлення складного об'єкта. Клієнтам нічого не треба
знати про класи, що визначають внутрішню структуру продукту, вони відсутні
в інтерфейсі Builder.); *дає більш тонкий контроль над процесом
конструювання (На відміну від патернів, що породжують, які відразу
контролюють весь об'єкт повністю, Builder робить це крок за кроком під
управлінням розпорядника. Тому інтерфейс Builder більшою мірою
відображає процес конструювання продукту, ніж інші породжуючі патерни.
Це дозволяє забезпечити більш тонкий контроль за процесом
конструювання, отже, і з внутрішньої структурою готового продукту.)
26. Використання діапазонів зі списками 
Для прикладу візьмемо такий список: my_list = [2,4,42,32,15,-10,8,6,-3,11]
my_list[:-1] -> [2, 4, 42, 32, 15, -10, 8, 6, -3] -> виводить всі елементи, крім
останнього
my_list[1:-1] -> [4, 42, 32, 15, -10, 8, 6, -3] -> елементи з індексу 1 до -1
my_list[::2] -> [2, 42, 15, 8, -3] -> перший елемент, і потім через елемент
my_list[::-1] -> [11, -3, 6, 8, -10, 15, 32, 42, 4, 2] -> елементи з заду на перед
my_list[::-2] -> [11, 6, -10, 32, 4] -> останній елемент, і потім через елемент
my_list[:] -> [2, 4, 42, 32, 15, -10, 8, 6, -3, 11] -> копіює список
my_list[1:3] -> [4, 42] -> з елементу з індексом 1 до елементу з індексом 3
my_list[-3:-1] -> [6, -3] -> з елементу з індексом -3 до елементу з індексом -1
my_list[:3] -> [2, 4, 42] -> перші три елементи
my_list[3:] -> [32, 15, -10, 8, 6, -3, 11] -> елементи з елементу з індексом 3 і до
кінця
27. Поліморфізм у мові програмування Python
Поліморфізм – дуже важлива ідея у програмуванні. Вона полягає у
використанні єдиної сутності (метод, оператор або об'єкт) для представлення
різних типів у різних сценаріях використання. Тобто, поліморфізм - різна
поведінка того самого методу в різних класах. Наприклад, ми можемо скласти
два числа і можемо скласти два рядки. При цьому отримаємо різний
результат, тому що числа та рядки є різними класами.
28. Наслідування у мові програмування Python
Наслідування дозволяє створювати новий клас на основі вже існуючого класу.
Ключовими поняттями у наслідуванні є підклас та суперклас. Підклас
успадковує від суперкласу всі публічні атрибути та методи. Суперклас ще
називається базовим або батьківським (parent class), а підклас – похідним або
дочірнім.
Спадкування передбачає те, що дочірній клас містить усі атрибути
батьківського класу, причому деякі з них можуть бути перевизначені або
додані в дочірньому.
Однією з відмінних рис Python є підтримка множинного успадкування, тобто
один клас можна успадкувати від декількох класів.
29. Інкапсуляція у мові програмування Python
Інкапсуляція — це обмеження доступу до компонентів (методів і змінних).
Інкапсуляція робить деякі компонент доступними тільки всередині класу.
Інкапсуляція в Python працює лише на рівні угоди між програмістами про те,
які атрибути загальнодоступні, а які — внутрішні.
Одиночне підкреслення на початку імені атрибута говорить про те, що змінна
або метод не призначений для використання поза методами класу, однак
атрибут доступний для цього імені.
Подвійне підкреслення на початку імені атрибута дає великий захист: атрибут
стає недоступним для цього імені.

You might also like