Python

Python
Изображение логотипа
Класс языка объектно-ориентированный
Появился в 20 февраля 1991[1]
Автор Гвидо ван Россум[1]
Разработчик Python Software Foundation и Гвидо ван Россум[1]
Выпуск
Испытал влияние Алгол 68[3], ABC[4], Модула-3[5], Си[6], C++[5], Perl, Java[7], Лисп[8], Haskell[9], APL[10], Клу, Dylan, Icon и SML[10]
Лицензия Python Software Foundation License[1]
Сайт python.org (англ.)
ОС кроссплатформенность[11]
Логотип Викисклада Медиафайлы на Викискладе

Python (МФА: [ˈpʌɪθ(ə)n]; в русском языке встречаются названия пито́н[12] или па́йтон[13]) — высокоуровневый язык программирования общего назначения с динамической строгой типизацией и автоматическим управлением памятью[14][15], ориентированный на повышение производительности разработчика, читаемости кода и его качества, а также на обеспечение переносимости написанных на нём программ[16]. Язык является полностью объектно-ориентированным в том плане, что всё является объектами[14]. Необычной особенностью языка является выделение блоков кода отступами[17]. Синтаксис ядра языка минималистичен, за счёт чего на практике редко возникает необходимость обращаться к документации[16]. Сам же язык известен как интерпретируемый и используется в том числе для написания скриптов[14]. Недостатками языка являются зачастую более низкая скорость работы и более высокое потребление памяти написанных на нём программ по сравнению с аналогичным кодом, написанным на компилируемых языках, таких как C или C++[14][16].

Python является мультипарадигменным языком программирования, поддерживающим императивное, процедурное, структурное, объектно-ориентированное программирование[14], метапрограммирование[18], функциональное программирование[14] и асинхронное программирование[19]. Задачи обобщённого программирования решаются за счёт динамической типизации[20][21]. Аспектно-ориентированное программирование частично поддерживается через декораторы[22], более полноценная поддержка обеспечивается дополнительными фреймворками[23]. Такие методики как контрактное и логическое программирование можно реализовать с помощью библиотек или расширений[24]. Основные архитектурные черты — динамическая типизация, автоматическое управление памятью[14], полная интроспекция, механизм обработки исключений, поддержка многопоточных вычислений с глобальной блокировкой интерпретатора (GIL)[25], высокоуровневые структуры данных. Поддерживается разбиение программ на модули, которые, в свою очередь, могут объединяться в пакеты[26].

Эталонной реализацией Python является интерпретатор CPython, который поддерживает большинство активно используемых платформ[27], являющийся стандартом де-факто языка[28]. Он распространяется под свободной лицензией Python Software Foundation License, позволяющей использовать его без ограничений в любых приложениях, включая проприетарные[29]. CPython компилирует исходные тексты в высокоуровневый байт-код, который исполняется в стековой виртуальной машине[30]. К другим трём основным реализациям языка относятся Jython (для JVM), IronPython (для CLR/.NET) и PyPy[14][31]. PyPy написан на подмножестве языка Python (RPython) и разрабатывался как альтернатива CPython с целью повышения скорости исполнения программ, в том числе за счёт использования JIT-компиляции[31]. Поддержка версии Python 2 закончилась в 2020 году[32]. На текущий момент активно развивается версия языка Python 3[33]. Разработка языка ведётся через предложения по расширению языка PEP (англ. Python Enhancement Proposal), в которых описываются нововведения, делаются корректировки согласно обратной связи от сообщества и документируются итоговые решения[34].

Стандартная библиотека включает большой набор полезных переносимых функций, начиная с возможностей для работы с текстом и заканчивая средствами для написания сетевых приложений. Дополнительные возможности, такие как математическое моделирование, работа с оборудованием, написание веб-приложений или разработка игр, могут реализовываться посредством обширного количества сторонних библиотек, а также интеграцией библиотек, написанных на Си или C++, при этом и сам интерпретатор Python может интегрироваться в проекты, написанные на этих языках[14]. Существует и специализированный репозиторий программного обеспечения, написанного на Python, — PyPI[35]. Данный репозиторий предоставляет средства для простой установки пакетов в операционную систему и стал стандартом де-факто для Python[36]. По состоянию на 2019 год в нём содержалось более 175 тысяч пакетов[35].

Python стал одним из самых популярных языков, он используется в анализе данных, машинном обучении, DevOps и веб-разработке, а также в других сферах, включая разработку игр. За счёт читабельности, простого синтаксиса и отсутствия необходимости в компиляции язык хорошо подходит для обучения программированию, позволяя концентрироваться на изучении алгоритмов, концептов и парадигм. Отладка же и экспериментирование в значительной степени облегчаются тем фактом, что язык является интерпретируемым[14][37]. Применяется язык многими крупными компаниями, такими как Google или Facebook[14].

  1. 1 2 3 4 5 6 History and License - Python documentation
  2. Wouters T. Python Insider: Python 3.12.4 released — 2024.
  3. https://impythonist.wordpress.com/2014/02/16/open-heart-with-guido-van-rosuuma-lost-interview-of-python-creator-part2/
  4. Why was Python created in the first place?Python Software Foundation.
  5. 1 2 Classes The Python TutorialPython Software Foundation.
  6. An Introduction to Python for UNIX/C Programmers
  7. https://peps.python.org/pep-0318/
  8. https://docs.python.org/3.2/tutorial/controlflow.html
  9. Functional Programming HOWTO
  10. 1 2 https://docs.python.org/3/library/itertools.html
  11. Download Python
  12. Мария «Mifrill» Нефёдова, Создатели языков программирования: Они такие разные, но кодинг их объединяет, Хакер № 09/08 (117). Дата обращения: 1 декабря 2012. Архивировано 2 июля 2013 года.
  13. Прохоренок Н., Дронов В. Введение // Python 3. Самое необходимое, 2-е изд.. — БХВ-Петербург, 2019. — С. 11. — 608 с. — ISBN 9785977539944. Архивировано 12 февраля 2021 года.
  14. 1 2 3 4 5 6 7 8 9 10 11 Yogesh Rana. Python: Simple though an Important Programming language (англ.) // International Research Journal of Engineering and Technology (IRJET). — 2019. — 2 February (vol. 06, iss. 2). — P. 1856—1858. — ISSN 2395-0056. Архивировано 11 февраля 2021 года.
  15. SkipMontanaro. Why is Python a dynamic language and also a strongly typed language - Python Wiki (англ.). wiki.python.org (24 февраля 2012). Дата обращения: 14 марта 2021. Архивировано 14 марта 2021 года.
  16. 1 2 3 Mark Lutz. A Python Q&A Session (англ.). Learning Python, 3rd Edition [Book]. O'Reilly Media, Inc. (2007). Дата обращения: 11 февраля 2021. Архивировано 8 февраля 2021 года.
  17. Python Introduction | (англ.). Python Education. Google Developers (20 августа 2018). Дата обращения: 21 февраля 2021. Архивировано 4 декабря 2020 года.
  18. Satwik Kansal. Metaprogramming in Python (англ.). IBM (5 апреля 2018). Дата обращения: 14 апреля 2021. Архивировано 27 февраля 2021 года.
  19. asyncio — Asynchronous I/O. Python documentation. Дата обращения: 9 октября 2023. Архивировано 5 мая 2019 года.
  20. Ошибка в сносках?: Неверный тег <ref>; для сносок :8 не указан текст
  21. Ошибка в сносках?: Неверный тег <ref>; для сносок :9 не указан текст
  22. Steven F. Lott. Aspect-oriented programming (англ.). Mastering Object-Oriented Python - Second Edition. Packt Publishing (2019). Дата обращения: 21 февраля 2021. Архивировано 21 февраля 2021 года.
  23. Arne Bachmann, Henning Bergmeyer, Andreas Schreiber. Evaluation of aspect-oriented frameworks in Python for extending a project with provenance documentation features (англ.) // The Python Papers. — 2011. — Vol. 6, iss. 3. — P. 1–18. — ISSN 1834-3147. Архивировано 22 апреля 2018 года.
  24. Steven Cooper. Data Science from Scratch: The #1 Data Science Guide for Everything A Data Scientist Needs to Know: Python, Linear Algebra, Statistics, Coding, Applications, Neural Networks, and Decision Trees (англ.). — Roland Bind, 2018. — 126 p. Архивировано 21 февраля 2021 года.
  25. Reuven M. Lerner. Multiprocessing in Python (англ.). Linux Journal (16 апреля 2018). Дата обращения: 14 февраля 2021. Архивировано 14 февраля 2021 года.
  26. David Beazley, Brian K. Jones. 10. Modules and Packages - Python Cookbook, 3rd Edition [Book] (англ.). Python Cookbook, 3rd Edition. O'Reilly Media, Inc. (2013). Дата обращения: 21 февраля 2021. Архивировано 21 февраля 2021 года.
  27. About Python. Дата обращения: 7 августа 2007. Архивировано 11 августа 2007 года.
  28. PythonImplementations - Python Wiki (англ.). wiki.python.org (21 июля 2020). Дата обращения: 17 февраля 2021. Архивировано 11 ноября 2020 года.
  29. History and License (англ.). Python. Дата обращения: 21 мая 2021. Архивировано 5 декабря 2016 года.
  30. Mostafa Chandra Krintz, C. Cascaval, D. Edelsohn, P. Nagpurkar, P. Wu. Understanding the Potential of Interpreter-based Optimizations for Python (англ.) // UCSB Technical Report. — 2010. — 11 August. Архивировано 23 февраля 2021 года.
  31. 1 2 Ошибка в сносках?: Неверный тег <ref>; для сносок :3 не указан текст
  32. PEP 373 -- Python 2.7 Release Schedule (англ.) (23 марта 2014). Дата обращения: 7 марта 2021. Архивировано 25 февраля 2021 года.
  33. Berk Ekmekci, Charles E. McAnany, Cameron Mura. An Introduction to Programming for Bioscientists: A Python-Based Primer (англ.) // PLOS Computational Biology. — 2016. — 6 July (vol. 12, iss. 6). — P. e1004867. — ISSN 1553-7358. — doi:10.1371/journal.pcbi.1004867. — PMID 27271528. Архивировано 16 февраля 2021 года.
  34. Kalyani Adawadkar. Python Programming - Applications and Future (англ.) // International Journal of Advance Engineering and Research Development. — 2017. — April (iss. SIEICON-2017). — P. 1—4. — ISSN 2348-447. Архивировано 15 июля 2020 года.
  35. 1 2 Ethan Bommarito, Michael James Bommarito. An Empirical Analysis of the Python Package Index (PyPI) (англ.) // Social Science Research Network. — Rochester, NY: Social Science Research Network, 2019. — 25 July. — doi:10.2139/ssrn.3426281. — arXiv:arXiv:1907.11073v2. Архивировано 9 июня 2021 года.
  36. Pratik Desai. Python Programming for Arduino (англ.). — Packt Publishing Ltd, 2015. — P. 8. — 400 p. — ISBN 978-1-78328-594-5. Архивировано 21 февраля 2021 года.
  37. Sebastian Bassi. A Primer on Python for Life Science Researchers (англ.) // PLOS Computational Biology. — 2007. — 30 November (vol. 3, iss. 11). — P. e199. — ISSN 1553-7358. — doi:10.1371/journal.pcbi.0030199. Архивировано 13 марта 2021 года.

From Wikipedia, the free encyclopedia · View on Wikipedia

Developed by Tubidy