Python — це інтерпретована, інтерактивна, об’єктно-орієнтована та високорівнева мова програмування загального призначення з динамічною суворою типізацією та автоматичним управлінням пам’яттю, орієнтована на підвищення продуктивності розробника, читабельність коду, а також на забезпечення портування написаних на ній програм. Задум з реалізації мови з’явився наприкінці 1980-х років, а розробка почалася в 1989 році співробітником голландського інституту CWI Гвідо ван Россумом.
Історія Python
Мова Python була створена співробітником голландського інституту CWI Гвідо ван Россумом у 1991 році. Деякі концепції для Python були взяті від мови програмування ABC (Гвідо брав участь у розробці цієї мови, орієнтованої на навчання програмування). Часто згадується, що ABC є попередником мови Python.
Щодо вибору назви Python відомо цікавий факт. Гвідо ван Россум був шанувальником популярного на той час комедійного шоу BBC “Літаючий цирк Монті Пайтона”. Тому він вирішив взяти назву Python для нової мови програмування.
Python має велику спільноту по всьому світу і випускає нові версії доволі часто.
Версії Python
Дати випуску основних та проміжних версій:
Python 1.0 — січень 1994 року
Python 1.5 — 31 грудня 1997 року
Python 1.6 — 5 вересня 2000 року
Python 2.0 — 16 жовтня 2000 року
Python 2.1 — 17 квітня 2001 року
Python 2.2 — 21 грудня 2001 року
Python 2.3 — 29 червня 2003 року
Python 2.4 — 30 листопада 2004 року
Python 2.5 — 19 вересня 2006 року
Python 2.6 — 1 жовтня 2008 року
Python 2.7 — 3 червня 2010 року
Python 3.0 — 3 грудня 2008 року
Python 3.1 — 27 червня 2009 року
Python 3.2 — 20 лютого 2011 року
Python 3.3 — 29 вересня 2012 року
Python 3.4 — 16 березня 2014 року
Python 3.5 — 13 вересня 2015 року
Python 3.6 — 23 грудня 2016 року
Python 3.7 — 27 червня 2018 року
Python 3.8 — 14 жовтня 2019 року
Python 3.9 — 5 жовтня 2020 року
Python 3.10 — 4 жовтня 2021 року
Python 3.11 — 24 жовтня 2022 року
Python 2 проти Python 3
У більшості мов програмування, коли виходить нова версія, вона підтримує функції та синтаксис існуючої мови, щоб проектам було простіше перейти на нову версію. Однак у випадку з Python версії Python 2 та Python 3 значно відрізняються одна від одної.
| Python 2 | Python 3 | |
| Рік випуску | Реліз у 2000 році. | Реліз у 2008 році. |
| Ключове слово print | print є оператором. | print є функцією. |
| Зберігання рядків | Рядки за замовчуванням зберігаються у форматі ASCII. | Рядки за замовчуванням зберігаються у форматі Unicode. |
| Ділення цілих чисел | Під час ділення двох цілих чисел ми отримуємо цілочисельне значення. Наприклад, 7/2 дасть результат 3. | Під час ділення двох цілих чисел ми отримуємо значення типу з плаваючою крапкою. Наприклад, 7/2 дасть результат 3.5. |
| Винятки | Винятки поміщені в нотації. | Винятки поміщені у круглі дужки. |
| Зміна змінних | Значення глобальних змінних змінюються, якщо вони використовуються всередині циклу for. | Значення глобальних змінних ніколи не змінюються. |
| Ітерація | Функція xrange() використовується для виконання ітерацій. | Введена нова функція range() для виконання ітерацій. |
| Простота синтаксису | Має складніший синтаксис, ніж Python 3. | Має простіший синтаксис порівняно з Python 2. |
| Бібліотеки | Багато бібліотек Python 2 не сумісні зі стандартом Python 3. | Створено багато бібліотек, призначених виключно для використання у Python 3. |
| Використання | Python 2 не підтримується з 2020 року. | Python 3 популярніший, ніж Python 2, і досі використовується. |
| Зворотна сумісність | Код версії Python 2 можна портувати на Python 3, але це непросто. | Python 3 не має зворотної сумісності з Python 2. |
Переваги Python
Відкритий вихідний код та безкоштовне використання. Усі релізи Python доступні безкоштовно. Python можна навіть модифікувати та розповсюджувати безкоштовно. Це значно знижує витрати на розробку.
Легко вчити. У Python мало ключових слів, проста структура та чітко визначений синтаксис. Це дозволяє швидко вивчати мову.
Легко читати. Код Python простий та лаконічний, що робить його більш читабельним ніж код інших мов програмування.
Легко підтримувати. Вихідний код Python є досить простим у підтримці.
Велика стандартна бібліотека. Велика частина бібліотеки Python легко портується і є кросплатформною, сумісна з Unix, Windows та macOS.
Інтерактивний режим. Python підтримує інтерактивний режим, який дозволяє інтерактивно тестувати та відлагоджувати фрагменти коду.
Портування. Python може працювати на різних апаратних платформах і має однаковий інтерфейс на всіх платформах.
Розширюваність. Ви можете додавати низькорівневі модулі до інтерпретатора Python. Ці модулі дозволяють програмістам додавати або налаштовувати свої інструменти для підвищення ефективності.
GUI-програмування. Python підтримує програми з графічним інтерфейсом, які можна створювати та переносити у велику кількість системних викликів, бібліотек та віконних систем, таких як Windows MFC, Macintosh і X Window System в Unix.
Універсальність. Python — це гнучка мова загального призначення, яка повністю підтримує як процедурне, так і об’єктно-орієнтоване програмування. Завдяки вбудованим та стороннім пакетам підходить для виконання широкого спектра завдань.
Ефективність для швидкої розробки. Оскільки Python є простим у використанні та не вимагає компіляції, розробка програм займає менше часу. Програми Python зазвичай набагато коротші, ніж аналогічні програми написані на інших мовах програмування. Це чудовий вибір для швидкого створення прототипів в сфері швидкої розробки програмного забезпечення.
Автоматичне виділення пам’яті. Python не має вказівників, і розробникам не потрібно виділяти вільне місце у пам’яті. Python автоматично виділяє пам’ять, а збирач сміття “перероблює” пам’ять із відкинутих об’єктів. Це означає, що розробникам не потрібно турбуватися про витоки пам’яті, некоректні посилання чи вказівники та розмір кожного об’єкта.
Доступність сторонніх бібліотек. На додаток до великої вбудованої (стандартної) бібліотеки Python розробники мають доступ до багатьох безкоштовних зовнішніх бібліотек. Ці сторонні бібліотеки легко імпортувати та встановлювати за допомогою репозиторію PyPI (скор. від “Python Package Index”). Також розробники можуть публікувати власні пакети.
Велика спільнота та велика популярність. Python є однією з найпопулярніших мов програмування. Він має велику та активну спільноту користувачів. Легко знаходити навчальні матеріали та інші ресурси, задавати питання, шукати роботу.
Недоліки Python
Не дуже швидкий. Python повільніший, ніж мови C і Java. Python — це інтерпретована мова з динамічною типізацією, тому він повинен постійно перевіряти тип кожної змінної. Це означає, що Python є не найкращим вибором для випадків, де критично важлива швидкість.
Інтенсивне використання пам’яті. Python не оптимізовано для зменшення використання пам’яті. Він може використовувати вдесятеро більше оперативної пам’яті, ніж програма, написана економнішою мовою програмування. Однак це частково компроміс в обмін на гнучкість та простоту використання. Крім того, збирач сміття Python не може відразу зібрати всі “викинуті” ресурси, що зменшує обсяг доступної пам’яті. Python — не найкращий вибір для випадків з обмеженою пам’яттю.
Складніше уникнути помилок часу виконання (runtime errors). Python не компілюється до часу виконання та має динамічну типізацію. Тому багато проблем, які могли б бути виявлені компілятором, не з’являться до тих пір, поки програма не запуститься. Це може бути щось просте, наприклад, синтаксична помилка, або щось складніше, наприклад, спроба виконати операцію додавання цілого числа до рядка.
Взаємодія з базами даних. Працювати з базами даних у Python складніше. Python не має такого потужного і простого у використанні інтерфейсу, як Java Database Connectivity (JDBC). Його все ще можна використовувати, якщо операції читання та запису до баз даних відносно прості. Але це не найкращий вибір для програм, які мають складні взаємодії з великою корпоративною базою даних.
Відсутність підтримки багатопотоковості. Через свою архітектуру Python не підтримує багатопотоковість. Натомість він використовує багатопроцесорність, коли кожен «потік» виконується в окремому процесі Python. Це сильно залежить від контролю операційною системою за плануванням та балансуванням процесів і не завжди дає однаково хороші результати.
Альтернативи Python
C/C++: ці дві мови програмування є гарним вибором, коли важливі швидкість, продуктивність та низьке використання пам’яті. Вони статично типізовані та вимагають попередньої компіляції, тому генерують менше помилок під час виконання. Вони часто використовуються для розробки ігор та десктопних програм. Але, на жаль, вони вважаються складними мовами для новачків (порівняно з Python).
JavaScript: Як і Python, JavaScript є інтерпретованою та динамічною типізованою мовою програмування. JavaScript найчастіше використовується у веб-розробці, оскільки працює на стороні клієнта та безперешкодно взаємодіє з компонентами HTML та CSS. Його можна використовувати з Node.js для повного циклу веб-розробки. Python зазвичай не використовується у фронтенді, тому він не є гарною full stack альтернативою.
R: R — це альтернатива Python у Data Science. Однак він більше орієнтований на статистичний аналіз. R особливо хороший для візуалізації даних, але він складніший та важчий в освоєнні. Python — це простіший та швидший варіант для даних загального призначення та чисельних методів, а також пропонує найкращі можливості у сфері машинного навчання.
Де використовується Python?
Data Science.
Date Mining.
Розробка десктопних програм.
Розробка консольних програм.
Розробка мобільних додатків.
Розробка корпоративних додатків.
Розробка веб-додатків.
Розробка ПЗ.
Штучний інтелект (AI).
Машинне навчання (ML).
Програми для обробки зображень.
Розпізнавання мови.
Популярні фреймворки та бібліотеки Python
Веб-розробка (Backend) — Django, Flask, Pyramid, CherryPy.
Розробка програм з графічним інтерфейсом — Tk, PyGTK, PyQt, PyJs та ін.
Машинне навчання — TensorFlow, PyTorch, Scikit-learn, Matplotlib, Scipy та ін.
Аналіз даних — Numpy, Pandas та ін.
Вакансії, пов’язані з Python
Розробник ігор.
Веб-дизайнер.
Python-програміст.
Full Stack Developer.
Machine Learning Engineer.
Фахівець в Data Science.
Аналітик даних.
DevOps інженер.
Розробка ПЗ та ін.
Приклади Python-коду
У Python не використовуються фігурні дужки та крапка з комою, але використовуються відступи (пробіли) для визначення блоків коду. Наприклад:
|
1 2 3 4 5 6 |
def func(): стейтмент 1 стейтмент 2 ………………… ………………… стейтмент R |
Python проти Java
На відміну від інших мов програмування, Python надає можливість виконувати операції з найменшою кількістю рядків коду. Наприклад, для виконання першої програми всіх новачків — “Hello, world!” — на мові Java потрібно 3 рядки коду, тоді як у Python — лише 1 рядок.
Програма “Hello, world!” на Java:
|
1 2 3 4 5 6 7 |
// Java class HelloWorld { public static void main(String[] args) { System.out.println("Hello, world!"); } } |
Програма “Hello, world!” на Python:
|
1 2 3 |
# Python print("Hello, world!") |
Результат виконання обох програм:
Функція print() в Python
Функція print() виводить вказаний об’єкт в стандартний пристрій виводу (екран) або файл текстового потоку. На відміну від інших мов програмування, функція print() у Python є унікальною та універсальною функцією.
Синтаксис функції print():
|
1 |
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False) |
Розглянемо детально:
objects — об’єкти для виводу. Символ * означає, що може бути декілька об’єктів;
sep — розділювач значень для виводу. За замовчуванням використовується пробіл ' ';
end — виводиться останнім у стейтменті;
file — вказуємо, куди виводити об’єкт;
flush — потік або файл примусово очищається, якщо значення параметра дорівнює True. За замовчуванням встановлено значення False.
Приклад Python-програми з використанням функції print():
|
1 2 3 4 5 6 7 8 9 |
print("Welcome to aCode!") a = 15 # У функції print() вказано два аргументи print("a =", a) b = a # У функції print вказано три аргументи print('a =', a, '= b') |
Результат:
Welcome to aCode!
a = 15
a = 15 = b
Відразу декілька об’єктів можна вивести за допомогою функції print(). Для цього використовується кома (,).
Отримання користувацького вводу в Python
Python надає функцію input() для отримання користувацького вводу. Наприклад:
|
1 2 |
name = input("Enter a name of student:") print("The student name is: ", name) |
Результат:
Enter a name of student: Anton
The student name is: Anton
За замовчуванням функція input() приймає рядок на вхід, але можна вказати й інші типи даних.
Наприклад, для отримання числа від користувача ми можемо використати:
|
1 2 3 4 5 |
a = int(input("Enter first number: ")) b = int(input("Enter second number: ")) # Виводимо суму двох чисел, вказаних користувачем print(a+b) |
Результат:
Enter first number: 20
Enter second number: 30
50

(44 оцінок, середня: 4,93 з 5)