НМЦ

Програмування мовою Python: основи та практика

Електронний посібник

ВФПО

ТЕМА 1. ЗНАЙОМСТВО З МОВОЮ ПРОГРАМУВАННЯ PYTHON

 

 

 

 

Уроки Python з нуля / #1 – Програмування на Пітон для початківців

 

Презентація. Зннайомство з PYTHON №1

 

 

Стежки створення мови Python ведуть від Гвідо ван Россума, програміста з Нідерландів.

 

Python – молода сценарна мова, історія якої почалася в 1990 році, коли співробітник голландського інституту CWI, тоді ще мало кому відомий Гвідо ван Росум брав участь у проєкті створення мови АВС. Ця мова була призначена для заміни мови BASIC у навчанні студентів основних концепцій програмування. Незважаючи на цільовість ABC, вона майже не стала популярною.

 

У грудні 1989 року Гвідо розпочав свій власний «хобі-проєкт» Python, використовуючи певні аспекти мови ABC як основу. Фактично, Python створювався, щоб виправити недоліки, виявлені в процесі роботи над ABC. Офіційно датою створення мови Python вважають 20 лютого 1991 року.

Впродовж тривалого періоду часу Гвідо ван Россум не лише був творцем мови, але і виконував роль «Доброзичливого диктатора на все життя» (Benevolent Dictator For Life), хто мав право приймати кінцеві рішення щодо мови. Але 12 липня 2018 року він оголосив про своє відмовлення від цієї посади.

Щодо назви мови, сам Гвідо ван Россум зазначає, що вона виникла через британське комедійне шоу «Літаючий цирк Монті Пайтона» (Monty Python’s Flying Circus), хоча подекуди її вимовляють як «Пітон».

Мова почала швидко розвиватися, оскільки з’явилася велика кількість людей, які були зацікавлені та розумілися на розвитку мов програмування. Спочатку це була досить проста мова, невеликий інтерпретатор, незначна кількість функцій, об’єктно-орієнтованого програмування не було, але дуже швидко все це з’явилося та донині продовжується її розвиток та виходять нові версії, де кожна наступна має декілька суттєвих відмінностей від попередньої.

Python було створено під впливом різних мов програмування.

 

v Відступи (поля) для групування операторів були запозичені з мови ABC.

v Механізм винятків (try...except) було запозичено з Modula-3.

v Деякі синтаксичні конструкції було взято з С та C++ для уникнення конф­ліктів у програмістів, які звикли до цих мов.

v Елементи об’єктно-орієнтованого та функціонального програмування було вдосконалено внаслідок впливу Smalltalk, Lisp та інших.

v Python використовує різні компоненти та модулі, взяті з мови Java.

v Особливості з Fortran, Miranda, Icon було також враховано.

 

Python є у двох актуальних версіях: Python 2.x (остання версія 2.7) та Python 3.x (остання версія 3.8). Підтримка гілки 2.x завершилася у січні 2020 року, тому для нових проєктів рекомендовано використовувати Python 3.x.

 

1.1. Oсобливості мови

 

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

 

Проста і мінімалістична мова

 

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

 

Мова легка в освоєнні та проста для вивчення

 

Мовою Python надзвичайно легко почати програмувати. Вона має виключно простий синтаксис. Досить часто в закладах освіти обирають Python як першу мову програмування для своїх студентів.

 

Вільна і відкрита мова

 

=

Python це приклад вільного і відкритого програмного забезпечення – FLOSS (Free / Libré and Open Source Sofware).

 

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

 

Високорівнева мова

 

Машина (комп’ютер, процесор) розуміє лише певний обмежений та примітивний набір спеціальних команд. Коли пишеться код деякою мовою, по суті, вказуються інструкції, які має виконати машина. Залежно від того, які ці інструкції, мови і поділяються на високорівневі та низькорівневі. Якщо код пишеться в машинних інструкціях (командах), то це низькорівневі мови. Якщо ж додатково необхідне певне програмне забезпечення, яке перетворюватиме код, написаний мовою програмування, в машинні інструкції (команди), то це високорівнева мова програмування. Програмне забезпечення, за яким відбувається вказане переведення, називають компіляторами або інтерпретаторами.

 

Мова загального призначення

 

Мова призначена для розв’язування досить широкого спектра задач.

 

Кросплатформенна мова

 

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

 

Python можна використовувати в GNU / Linux, Windows, FreeBSD, Macintosh, Solaris, OS/2, Amiga, AROS, AS/400, BeOS, OS/390, z/OS, Palm OS, QNX, VMS, Psion, Acorn RISC OS, VxWorks, PlayStation, Sharp Zaurus, Windows CE і навіть на PocketPC

 

1.2. Інтерпретована мова

 

Як зазначено раніше, для виконання програми на комп’ютері необхідно команди мови програмування перетворити на команди, які здатен виконувати процесор комп’ютера. Є два типи таких перетворень – інтерпретація і компіляція, які здійснюють спеціальні програми-транслятори.

Програма, написана компільованою мовою програмування, як наприклад, Pascal або C++, аналізується і за відсутності помилок перетворюється за допомогою компілятора на мову, зрозумілу комп’ютеру (бінарний код), після чого записується в оперативну пам’ять комп’ютера або на диск. Утворений на диску файл є виконуваним файлом і може бути виконаний засобами операційної системи без повторного використання транслятора.

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

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

 

Зокрема, для Python можна виокремити такі інтерпретатори:

v CPythonінтерпретатор, реалізований на C. Вважається еталонною реалізацією Python і підтримує більшість активно використовуваних платформ;

v IronPython – Python для .NET Framework і Mono. Компілює Python-програми в MSIL (Microsoft Intermediate Language), отже, надаючи повну інтеграцію з .NET-системою;

v Jython реалізація Python, що використовує JVM (Java Virtual Machine);

v Stacklessпатчі до CPython, який надає розширені можливості багатопото­кового програмування і значно більшу глибину рекурсії;

v PyPyреалізація Python, написана на RPython. В PyPy вбудований трасуючий JIT-компілятор (Just-in-time compilation), який може перетворювати код Python на машинний код під час виконання програми.

 

Мультипарадигменна мова

 

В основу Python покладено декілька парадигм програмування: об’єктно- орієнтовна, імперативна, функціональна (функційна), структурна. Проте досить часто про Python говорять, зокрема, як про об’єктно-орієнтовну мову програмування. В об’єктно-орієнтованих мовах програмування програми будуються на основі об’єктів, які об’єднують дані і функціонал. Об’єктів в мові Python багато, можна навіть сказати, що все є об’єкт (це не дуже коректно, але допустимо).

 

Розширювана мова

 

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

 

Вбудовувана мова

 

Код Python можна легко вбудовувати в програми на Java, C/C++, щоб надати користувачам змогу написання власних сценаріїв. Взаємодія Python-додатків з іншими системами можлива також за допомогою CORBA (Common Object Request Broker Architecture), XML-RPC (Extensible Markup Language Remote Procedure Call), SOAP (Simple Object Access Protocol), COM (Component Object Model).

 

Python ‒ це мова програмування, яка забезпечує широкий функціонал завдяки розгалуженій стандартній бібліотеці. За допомогою цієї бібліотеки програмісти можуть займатися виконанням різноманітних завдань: від роботи з базами даних і веббраузерами до створення графічних інтерфейсів користувача та обробки звуку.

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

 

Хоча мова Python є досить швидкою для більшості застосунків, проте її швидкість може виявитися не завжди достатньою. Якщо програма проводить більшу частину часу за обчисленнямиобмежена швидкодією процесора» (CPU-bound)), то мови С, С++ або Java впораються із завданням набагато краще, ніж Python. Але не завжди. Іноді більш якісний алгоритм (покрокове рішення) для Python перевершує за швидкістю неефективний алгоритм для С. Більш висока швидкість розробки для Python дає більше часу для експериментів над альтернативними рішеннями.

 

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

Також Python має обмеження щодо модифікації вбудованих класів і проблему з глобальним блокуванням інтерпретатора GIL, що може обмежити ефективність мультипотокового програмування.

Python використовують у різних сферах, зокрема системному програмуванні, веброзробці, обробці баз даних, наукових обчисленнях, навчанні та розробці ігор.

 

 

v BitTorrent програми для файлообміну. Всі версії до 6-ї було написано мовою Python. Версію 6 було переписано мовою C ++.

v Blenderвільний, професійний пакет для створення тривимірної комп’ютер­ної графіки. Python використовується як засіб створення інструментів і прототипів, системи логіки в іграх, як засіб імпорту / експорту файлів, автоматизації завдань.

v GIMP – растровий графічний редактор. Python використовується для написан­ня додаткових модулів (фільтрів).

v Maya – система тривимірного моделювання та створення мультиплікації підтримує інтерфейс для управління зі сценаріїв мовою Python.

v Civilization IV. Велика частина гри написана мовою Python.

v World of Tanks. Як скриптова мова в проєкті використовується Python.

v LibreOffice. Написання макросів.

 

Web-розробка

v Яндекс. Python використовується в ядрі Яндекс-диска.

v DropBox. Сервіс розроблено мовою Python.

v Instagram. Розроблено мовами Python и Django.

v Компанія Google широко використовує Python у своїй пошуковій системі.

v Служба колективного використання відеоматеріалів YouTube значною мірою реалізована мовою Python.

v Реалізація поштового сервера IronProt використовує понад один мільйон рядків програмного коду мовою Python.

v Мовою Python написано багато вебфреймворків: App Engine, Pylons, TurboGears, CherryPy, Flask, Pyramid та інші.

 

Компанії, які використовують Python

v ESRI використовує Python як інструмент налаштування своїх популярних геоінформаційних програмних продуктів під потреби кінцевого користувача.

v NSA використовує Python для шифрування і аналізу розвідданих.

v EVE Online і Massively Multiplayer Online Game (MMOG) широко використо­вують Python у своїх розробках.

v Intel, Cisco, Hewlett-Packard, Seagate, Qualcomm і IBM, використовують Python для тестування апаратного забезпечення.

v Industrial Light & Magic, Pixar та інші використовують Python у виробництві анімаційних фільмів.

v JPMorgan Chase, UBS, Getco і Citadel застосовують Python для прогнозування фінансового ринку.

v NASA, Los Alamos, Fermilab, JPL й інші використовують Python для наукових обчислень.

 

Python широко використовують у сфері системного адміністрування, особливо на Linux-серверах, де цю мову встановлюють автоматично, забезпечуючи ефективну автоматизацію рутинних завдань для системних адміністраторів.

Крім того, Python застосовується для програмування вбудованих систем. Один з відомих проєктів, де використовується Python, це Raspberry Pi, де ця мова дає змогу реалізовувати широкий спектр функціоналу для цих систем.

 

Питання для перевірки засвоєних знань

1. Звідки виникла мова програмування Python та яка її історія розвитку?

2. Які ключові моменти або етапи в історії розвитку мови Python вплинули на її сучасний стан і популярність?

3. Які основні особливості синтаксису мови Python порівняно з іншими мовами програмування?

4. Які основні переваги мови Python порівняно з іншими мовами програмування, особливо щодо легкості вивчення та простоти використання?

5. Для яких цілей чи сфер застосування ви можете використовувати мову Python?

6. Наведіть конкретні приклади використання Python у реальних проєктах або сферах.

7. Які конкретні сфери і проєкти використовують Python та як саме ця мова допомагає виконувати їхні завдання?

Попередня тема

На початок

Наступна тема