Python (мова програмування)
Матеріал з Вікіпедії — вільної енциклопедії.
![]() |
|
Парадигма: | декілька парадигм: імперативна, функціональна, об'єктно-орієнтована |
---|---|
Розробник: | Гвідо ван Россум |
Останній реліз: | 2.5 / 19 вересня, 2006 |
Під впливом від: | ABC, C, Haskell, Icon, Lisp, Modula-3, Perl, Smalltalk, Tcl |
ОС: | Cross-platform |
Ліцензія: | Python Software Foundation License |
Сторінка інтернет: | http://www.python.org |
Python (рекомендоване прочитання - "Пайтон") — інтерпретована об'єктно-орієнтована мова програмування виского рівня з динамічною семантикою[1]. Розроблена в 1990 році Гвідо ван Россумом. Структури даних високого рівня разом із динамічною семантикою та динамічним зв'язуванням, роблять її привабливою для швидкої розробки програм, а також в якості засобу поєдання існуючих компонент. Пайтон підтримує модулі та пакети модулів, що сприяє модульності та повторному використанню кода. Інтерпретатор Пайтон та стандартні бібліотеки доступні як у зкомпільованій так і у вихідній формі на всіх основних платформах. В мові програмування Пайтон підтримується декілька парадигм програмування, зокрема: об'єктно-орієнтована, процедурна, функціональна та аспектно-орієнтована.
Зміст |
[ред.] Характеристики Пайтона
Серед основних її переваг можна назвати такі:
- чистий синтаксис (для виділення блоків слід використовувати пробіли);
- переносимість програм (що властиве більшості інтерпретованих мов);
- стандартний дистрибутив має велику кількість корисних модулів (включно з модулем для розробки графічного інтерфейсу);
- можливість використання Пайтона в діалоговому режимі (дуже корисне для експериментування та вирішення простих задач);
- стандартний дистрибутив має просте, але разом із тим досить потужне середовище розробки, яке зветься IDLE і яке написане на мові Пайтон;
- зручний для вирішення математичних проблем (має засоби роботи з комплексними числами, може оперувати з цілими числами довільної величини, у діалоговому режимі може використовуватися як потужний калькулятор).
Пайтон має ефективні структури даних високого рівня та простий, але ефективний підхід до об'єктно-орієнтованого програмування. Елегантний синтаксис Пайтона, динамічна обробка типів, а також те, що це інтерпретована мова, роблять її ідеальною для написання скриптів та швидкої розробки прикладних програм у багатьох галузях на більшості платформ.
Інтерпретатор мови Пайтон і багата стандартна бібліотека (як вихідні тексти, так і бінарні дистрибутиви для всіх основних операційних систем) можуть бути отримані з сайту Пайтона [1], і можуть вільно розповсюджуватися. Цей самий сайт має дистрибутиви та посилання на численні модулі, програми, утиліти та додаткову документацію.
Інтерпретатор мови Пайтон може бути розширений функціями та типами даних, розробленими на C чи C++ (або на іншій мові, яку можна викликати із C). Пайтон також зручна як мова розширення для прикладних програм, що потребують подальшого налагодження.
[ред.] Історія
Пайтон створив на початку 1990-х співробітник голландського інституту CWI Гвідо ван Россум (Guido van Rossum), що брав участь у розробці мови АВС. Мова була призначена замінити Бейсік, який тоді застосовувався під час навчання програмування. Гвідо почав писати Пайтон вдома, запозичивши деякі напрацювання мови АВС. Потім мова почала вільно поширюватися через Інтернет, і сподобалася іншим програмістам. З 1991 року Пайтон є цілком об'єктно-орієнтованим. Пайтон також запозичив багато рис таких мов, як C, C++, Modula-3 і Icon, й окремі риси функціонального програмування з Ліспу.
Назва мови виникла зовсім не від виду плазунів. Автор назвав мову на честь популярного британського комедійного серіалу 70-х років «Повітряний цирк Монті Пайтона». Втім, все одно назву мови частіше асоціюють саме із змією, ніж з фільмом - піктограми файлів в KDE або в Windows і навіть емблема на сайті python.org зображають зміїну голову.
[ред.] Документація та підручники
Опис стандартних об'єктів та модулів, дивіться Python Library Reference. Python Reference Manual містить формальніше визначення мови. Щоб писати розширення на C та C++, читайте Extending and Embedding the Python Interpreter та Python/C API Reference .
[ред.] Порти
Пайтон портований на всі відомі платформи — від КПК до мейнфреймів. Існують порти під Windows, всі варіанти UNIX (включно з Linux), Plan 9, Mac OS і Mac OS X, Palm OS, OS/2, Amiga, AS/400 і навіть OS/390 і Symbian.
При цьому, на відміну від багатьох портованих систем, на кожній платформі Пітон підтримує характерні для даної платформи технології (наприклад, Microsoft COM). Крім того, існує спеціальна версія Пітона для віртуальної машини Java — Jython, що дозволяє інтерпретатору виконуватися на будь-якій системі, що підтримує Java, класи Java можуть безпосередньо використовуватися з Пайтона і навіть бути написаними Пайтоні. Нещодавно почалася розробка системи, направленої на повнішу інтеграцію з платформою .NETy — Iron Python.
[ред.] Типи й структури даних
Пайтон підтримує динамічну типізацію, тобто, тип змінної визначається лише під час виконання. З базових типів слід зазначити підтримку цілих чисел довільній довжини і комплексних чисел. Пайтон має багату бібліотеку для роботи із рядками, зокрема, кодовані в юнікоді.
З колекцій Пайтон підтримує кортежі (tuples), списки (масиви), словники (асоціативні масиви) і від версії 2.4, множини.
Система класів підтримує множинне успадкування і метапрограмування. Будь-який тип, включаючи базові, входить до системи класів, й за необхідності можливо успадкування навіть від базових типів.
[ред.] Синтаксис
Програми, написані Пітоні, легко читаються. Мова має чіткий і послідовний синтаксис, продуману модульність і маштабованість. Однією з цікавих синтаксичних особливостей мови є виділення блоків програми з допомогою відступів (прогалин чи табуляцій), у Пайтоні відсутні операторні дужки begin/end як у мові Паскаль чи фігурні дужки, як у C. Позаяк у більшості стилів форматування операторні дужки займають цілий рядок, цей трюк дозволяє помітно зменшити кількість рядків програми:
Программа на Сі | Еквівалентна програма на Python |
---|---|
int factorial(int x) { if (x == 0) { return 1; } else { return x * factorial(x-1); } } |
def factorial(x): if x == 0: return 1 else: return x * factorial(x-1) |
Отже, поведінка і навіть коректність програми може залежати від початкових прогалин у тексті. Деякі критики мови вважають таку поведінку протиінтуїтивною.
Пайтон пропонує зручну систему автоматичного документування коду — кожен модуль, клас, або функція може мати рядок документації (docstring). При інтерактивній роботі рядки документації доступні із системи допомоги.
[ред.] Функціональне програмування
Python пропонує засоби програмування в функціональному стилі. Найпростішими є спискові висловлювання (list comprehension). Наприклад, щоб отримати список квадратів натуральних чисел, менших 10, можна вжити вислів
l=[x**2 for x in range(10)]
Підтримуються анонимні функції:
add2=lambda x: x+2
після чого add2(5)==7
. Такі конструкції корисні, наприклад, як аргументи у функціональних висловлюваннях: filter(lambda x: x<5, somelist)
вибере зі списку somelist лише значення, менші 5. Такий самий результат можна одержати за допомогою спискового висловлювання [x for x in somelist if x<5]
. Анонимні функції, як і інші функції, можна створювати всередині інших функцій, реалізуючи повноцінні замикання.
[ред.] Дивіться також
[ред.] Ресурси в інтернет
- Головний сайт спільноти розробників Python
- Українська спільнота Python-програмістів
- Україномовна Вікі присвячена Python
- Підручник з Python українською
[ред.] Джерела інформації
- ↑ Guido van Rossum, Python Reference Manual, release 2.4.4, 18 October 2006.