Python (найчастіше вживане прочитання — «Па́йтон», запозичено назву з британського шоу Монті Пайтон) — інтерпретована об'єктно-орієнтована мова програмування високого рівня із суворою динамічною типізацієюGuido van Rossum, Python Reference Manual, release 2.4.4, 18 October 2006. Розроблена на початку 1990-х років Гвідо ван Россумом. Структури даних високого рівня разом із динамічною семантикою та динамічним зв'язуванням роблять її привабливою для швидкої розробки програм, а також як засіб поєднування наявних компонентів. Python підтримує модулі та пакети модулів, що сприяє модульності та повторному використанню коду. Інтерпретатор Python та стандартні бібліотеки доступні як у скомпільованій, так і у вихідній формі на всіх основних платформах. В мові програмування Python підтримується кілька парадигм програмування, зокрема: об'єктно-орієнтована, процедурна, аспектно-орієнтована та функціональна.

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

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

Інтерпретатор мови Python і багата Стандартна бібліотека (як вихідні тексти, так і бінарні дистрибутиви для всіх основних операційних систем) можуть бути отримані з сайту Python www.python.org , і можуть вільно розповсюджуватися. Цей самий сайт має дистрибутиви та посилання на численні модулі, програми, утиліти та додаткову документацію.

Інтерпретатор мови Python може бути розширений функціями та типами даних, розробленими на C чи C++ (або на іншій мові, яку можна викликати із C). Python також зручна як мова розширення для прикладних програм, що потребують подальшого налагодження.

Історія

Розробка мови Python була розпочата в кінці 1980-х років співробітником голландського інституту CWI Гвідо ван Россумом. Для розподіленої ОС Amoeba потрібна була розширювана скриптова мова, і Гвідо почав писати Python на дозвіллі, запозичивши деякі напрацювання для мови ABC (Гвідо брав участь у розробці цієї мови, орієнтованої на навчання програмування). У лютому 1991 року Гвідо опублікував вихідний текст в групі новин alt.sources. Мова почала вільно поширюватися через Інтернет і сподобалася іншим програмістам. З 1991 року Python є цілком об'єктно-орієнтованим. Python також запозичив багато рис таких мов, як C, C++, і , й окремі риси функціонального програмування з Ліспу.

Назва мови виникла зовсім не від виду плазунів. Автор назвав мову на честь популярного британського комедійного серіалу 70-х років «Повітряний цирк Монті Пайтона». Втім, все одно назву мови частіше асоціюють саме зі змією, ніж з фільмом — піктограми файлів в KDE або в Windows, і навіть емблема на сайті python.org зображують зміїну голову.

Наявність дружньої спільноти користувачів, поряд з дизайнерською інтуїцією Гвідо, вважається одним з головних факторів успіху Python. Розвиток мови відбувається згідно з чітко регламентованими процесами створення, обговорення, відбору та реалізації документів PEP (Python Enhancement Proposal) — пропозицій щодо розвитку Python.

3 грудня 2008 року, після тривалого тестування, вийшла перша версія Python 3000 (або Python 3.0, також використовується скорочена Py3k). У Python 3000 усунено багато недоліків архітектури з максимально можливим (але не повним) збереженням сумісності зі старішими версіями. На сьогодні підтримуються Python версії 3.

У 2023 році, найпопулярнішою мовою програмування серед IT-спеціалістів згідно рейтингу IEEE Spectrum стала Python. Рейтинг 2023 року охоплював 59 мов програмуванняIEEE Spectrum опублікувала рейтинг найпопулярніших мов програмування 2023 року. // Автор: Артем Житкевич. 30.08.2023.

Філософія Розробники мови Python є прихильниками певної філософії програмування, яку називають «The Zen of Python» («Дзен Пайтона»). Її текст можна отримати в інтерпретаторі Python за допомогою команди import this (лише один раз за сесію). Автором цієї філософії вважається .

Текст філософії:

Гарне краще за потворне. Явне краще за неявне. Просте краще за складне. Складне краще за заплутане. Плоске краще за вкладене. Розріджене краще за щільне. Легкість читання має значення. Особливі випадки не є настільки особливими, щоб порушувати правила. Хоча практичність є важливішою за бездоганність. Помилки ніколи не повинні проходити непомітно. Якщо їх приховування не прописано явно. Зустрівши неоднозначність, опирайтесь спокусі вгадати. Має бути один — і, бажано, тільки один — очевидний спосіб зробити це. Хоча спочатку він може бути й не очевидним, якщо ви не голландецьЖартівливий натяк на національність Гвідо. Зараз — краще, ніж ніколи. Хоча ніколи, найчастіше, — краще, ніж просто зараз. Якщо реалізацію важко пояснити — задум поганий. Якщо реалізацію легко пояснити — можливо, задум добрий. Простори імен — чудова річ, тож робімо їх більше!

Вплив інших мов на Python З'явившись порівняно пізно, Python створювався під впливом багатьох мов програмування: ABC — відступи (поля) для групування операторів, високорівневі структури даних (map) (фактично, Python створювався як спроба виправити помилки, допущені при проєктуванні ABC);  — пакети, модулі, використання else спільно з try та except, іменовані аргументи функцій (на це також вплинув Common Lisp); С, C++ — деякі синтаксичні конструкції (як пише сам Гвідо ван Россум — він використовував найбільш несуперечливі конструкції з С, щоб не викликати неприязнь у Сі-програмістів до Python); Smalltalk — об'єктно-орієнтоване програмування; Lisp — окремі риси функціонального програмування (lambda, map, reduce, filter та інші); Fortran — зрізи масивів, комплексна арифметика;  — спискові вирази; Java — модулі logging, unittest, threading (частина можливостей оригінального модуля не реалізована), xml.sax стандартної бібліотеки, спільне використання finally та except при обробці винятків, використання @ для декораторів;  — генератори. TypeScript — ідея синтаксису підказок типів (type hinting). З версії Python 3.10 система підказок типів стала унікальною, «злившись» з мовою в одне ціле. До того ж у Python підказки типів ніяк не впливають на роботу інтерпретатора.

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

Портованість Python портованна і працює майже на всіх відомих платформах — від КПК до мейнфреймів. Існують порти під Microsoft Windows, всі варіанти UNIX (включаючи FreeBSD та GNU/Linux), Plan 9, Mac OS та Mac OS X, iPhone OS 2.0 і вище, Palm OS, OS/2, Amiga, AS/400 та навіть , Symbian та Android.

У міру старіння платформи її підтримка в основній гілці мови припиняється. Наприклад, з версії 2.6 припинена підтримка Windows 95, Windows 98 та Windows ME. Однак на цих платформах можна використовувати попередні версії Python — спільнота активно підтримує версії Python починаючи від 2.3 (для них виходять виправлення).

При цьому, на відміну від багатьох портованих систем, для всіх основних платформ Python має підтримку характерних для даної платформи технологій (наприклад, Microsoft COM/DCOM). Навіть більше, існує спеціальна версія Python для віртуальної машини Java — Jython, що дозволяє інтерпретатору виконуватися на будь-якій системі, яка підтримує Java, при цьому класи Java можуть безпосередньо використовуватися з Python й навіть бути написаними на ньому. Також кілька проєктів забезпечують інтеграцію з платформою Microsoft.NET, основні з яких — IronPython та Python.Net.

Типи й структури даних

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

З колекцій Python підтримує кортежі (tuples), списки (масиви), словники (асоціативні масиви) і від версії 2.4, множини.

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

Можливості

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

Діалог роботи з Python в інтерактивному режимі має такий вигляд: >>> 2 ** 100 # піднесення 2 до 100-го степеня 1267650600228229401496703205376L >>> from math import * # імпорт математичних функцій >>> sin (pi * 0.5) # обчислення синуса від половини пі 1.0 >>> help (sorted) # допомогу по функції sorted Help on built-in function sorted in module __builtin__: sorted (…) sorted (iterable, cmp=none, key=none, reverse=false) -> new sorted list В інтерактивному режимі доступний дебагер pdb та система довідки (викликається за help()). Система допомоги працює для модулів, класів і функцій, тільки якщо ті були забезпечені рядками документації.

Крім вбудованої, існує й покращена інтерактивна оболонка IPython.

Підтримувані парадигми програмування Пайтон підтримує такі парадигми програмування:

процедурне програмування об'єктно орієнтоване програмування функціональне програмування.

При цьому на 100 відсотків підтримується тільки процедурне програмування. Є деякі послаблення деяких аспектах ООП - наприклад інкапсуляція даних не повна. Що стосується функціонального програмування, то можна казати про значну підтримку цієї парадигми.

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

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

Можливості та особливості: Класи є одночасно об'єктами з усіма нижче наведеними можливостями. Успадкування, в тому числі множинне. Поліморфізм (всі функції віртуальні). Інкапсуляція (два рівні — загальнодоступні та приховані методи і поля). Особливість — приховані члени доступні для використання та помічені як приховані лише особливими іменами. Спеціальні методи, що керують життєвим циклом об'єкта: конструктори, деструктори, розподільники пам'яті. Перевантаження операторів (усіх, крім is, '.', '=' і символьних логічних). Властивості (імітація поля за допомогою функцій). Управління доступу до полів (емуляція полів і методів, частковий доступ тощо).