Python (programming language)

Python
ParadigmMulti-paradigm: Object-oriented,[1] Procedural (Imperative), Functional, Structured, Reflective
Designed byGuido van Rossum
DeveloperPython Software Foundation
First appeared20 February 1991 (1991-02-20)[2]
Stable release
3.12.2 Edit this on Wikidata / 7 February 2024 (7 February 2024)
Typing disciplineDuck, Dynamic, Strong typing;[3] Optional type annotations (since 3.5, but those hints are ignored, except with unofficial tools)[4]
OSWindows, macOS, Linux/UNIX, Android, Unix-like systems, BSD variants[5][6] and a few other platforms[7]
LicensePython Software Foundation License
Filename extensions.py, .pyw, .pyz, [8]
.pyi, .pyc, .pyd
Websitepython.org
Major implementations
CPython, PyPy, Stackless Python, MicroPython, CircuitPython, IronPython, Jython
Dialects
Cython, RPython, Starlark[9]
Influenced by
ABC,[10] Ada,[11] ALGOL 68,[12]
APL,[13] C,[14] C++,[15] CLU,[16] Dylan,[17]
Haskell,[18][13] Icon,[19] Lisp,[20]
Modula-3
,[12][15] Perl,[21] Standard ML[13]
Influenced
Apache Groovy, Boo, Cobra, CoffeeScript,[22] D, F#, GDScript, Genie,[23] Go, JavaScript,[24][25] Julia,[26] Mojo,[27] Nim, Ring,[28] Ruby,[29] Swift[30]

Python is a high-level, general-purpose programming language. Its design philosophy emphasizes code readability with the use of significant indentation.[31]

Python is dynamically typed and garbage-collected. It supports multiple programming paradigms, including structured (particularly procedural), object-oriented and functional programming. It is often described as a "batteries included" language due to its comprehensive standard library.[32][33]

Guido van Rossum began working on Python in the late 1980s as a successor to the ABC programming language and first released it in 1991 as Python 0.9.0.[34] Python 2.0 was released in 2000. Python 3.0, released in 2008, was a major revision not completely backward-compatible with earlier versions. Python 2.7.18, released in 2020, was the last release of Python 2.[35]

Python consistently ranks as one of the most popular programming languages, and has gained widespread use in the machine learning community.[36][37][38][39]

  1. ^ "General Python FAQ – Python 3.9.2 documentation". docs.python.org. Archived from the original on 24 October 2012. Retrieved 28 March 2021.
  2. ^ "Python 0.9.1 part 01/21". alt.sources archives. Archived from the original on 11 August 2021. Retrieved 11 August 2021.
  3. ^ "Why is Python a dynamic language and also a strongly typed language". Python Wiki. Archived from the original on 14 March 2021. Retrieved 27 January 2021.
  4. ^ "PEP 483 – The Theory of Type Hints". Python.org. Archived from the original on 14 June 2020. Retrieved 14 June 2018.
  5. ^ "test – Regression tests package for Python – Python 3.7.13 documentation". docs.python.org. Archived from the original on 17 May 2022. Retrieved 17 May 2022.
  6. ^ "platform – Access to underlying platform's identifying data – Python 3.10.4 documentation". docs.python.org. Archived from the original on 17 May 2022. Retrieved 17 May 2022.
  7. ^ "Download Python for Other Platforms". Python.org. Retrieved 18 August 2023.
  8. ^ Holth, Moore (30 March 2014). "PEP 0441 – Improving Python ZIP Application Support". Archived from the original on 26 December 2018. Retrieved 12 November 2015.
  9. ^ "Starlark Language". Archived from the original on 15 June 2020. Retrieved 25 May 2019.
  10. ^ Cite error: The named reference faq-created was invoked but never defined (see the help page).
  11. ^ "Ada 83 Reference Manual (raise statement)". Archived from the original on 22 October 2019. Retrieved 7 January 2020.
  12. ^ a b Cite error: The named reference 98-interview was invoked but never defined (see the help page).
  13. ^ a b c "itertools – Functions creating iterators for efficient looping – Python 3.7.1 documentation". docs.python.org. Archived from the original on 14 June 2020. Retrieved 22 November 2016. This module implements a number of iterator building blocks inspired by constructs from APL, Haskell, and SML.
  14. ^ Cite error: The named reference AutoNT-1 was invoked but never defined (see the help page).
  15. ^ a b Cite error: The named reference classmix was invoked but never defined (see the help page).
  16. ^ Cite error: The named reference effbot-call-by-object was invoked but never defined (see the help page).
  17. ^ Cite error: The named reference AutoNT-2 was invoked but never defined (see the help page).
  18. ^ Cite error: The named reference AutoNT-3 was invoked but never defined (see the help page).
  19. ^ Cite error: The named reference AutoNT-4 was invoked but never defined (see the help page).
  20. ^ Cite error: The named reference AutoNT-6 was invoked but never defined (see the help page).
  21. ^ "re – Regular expression operations – Python 3.10.6 documentation". docs.python.org. Archived from the original on 18 July 2018. Retrieved 6 September 2022. This module provides regular expression matching operations similar to those found in Perl.
  22. ^ "CoffeeScript". coffeescript.org. Archived from the original on 12 June 2020. Retrieved 3 July 2018.
  23. ^ "The Genie Programming Language Tutorial". Archived from the original on 1 June 2020. Retrieved 28 February 2020.
  24. ^ "Perl and Python influences in JavaScript". www.2ality.com. 24 February 2013. Archived from the original on 26 December 2018. Retrieved 15 May 2015.
  25. ^ Rauschmayer, Axel. "Chapter 3: The Nature of JavaScript; Influences". O'Reilly, Speaking JavaScript. Archived from the original on 26 December 2018. Retrieved 15 May 2015.
  26. ^ Cite error: The named reference Julia was invoked but never defined (see the help page).
  27. ^ Krill, Paul (4 May 2023). "Mojo language marries Python and MLIR for AI development". InfoWorld. Archived from the original on 5 May 2023. Retrieved 5 May 2023.
  28. ^ Ring Team (4 December 2017). "Ring and other languages". ring-lang.net. ring-lang. Archived from the original on 25 December 2018. Retrieved 4 December 2017.
  29. ^ Cite error: The named reference bini was invoked but never defined (see the help page).
  30. ^ Lattner, Chris (3 June 2014). "Chris Lattner's Homepage". Chris Lattner. Archived from the original on 25 December 2018. Retrieved 3 June 2014. The Swift language is the product of tireless effort from a team of language experts, documentation gurus, compiler optimization ninjas, and an incredibly important internal dogfooding group who provided feedback to help refine and battle-test ideas. Of course, it also greatly benefited from the experiences hard-won by many other languages in the field, drawing ideas from Objective-C, Rust, Haskell, Ruby, Python, C#, CLU, and far too many others to list.
  31. ^ Cite error: The named reference AutoNT-7 was invoked but never defined (see the help page).
  32. ^ Cite error: The named reference About was invoked but never defined (see the help page).
  33. ^ "PEP 206 – Python Advanced Library". Python.org. Archived from the original on 5 May 2021. Retrieved 11 October 2021.
  34. ^ Rossum, Guido Van (20 January 2009). "The History of Python: A Brief Timeline of Python". The History of Python. Archived from the original on 5 June 2020. Retrieved 5 March 2021.
  35. ^ Peterson, Benjamin (20 April 2020). "Python 2.7.18, the last release of Python 2". Python Insider. Archived from the original on 26 April 2020. Retrieved 27 April 2020.
  36. ^ "Stack Overflow Developer Survey 2022". Stack Overflow. Archived from the original on 27 June 2022. Retrieved 12 August 2022.
  37. ^ "The State of Developer Ecosystem in 2020 Infographic". JetBrains: Developer Tools for Professionals and Teams. Archived from the original on 1 March 2021. Retrieved 5 March 2021.
  38. ^ "TIOBE Index". TIOBE. Archived from the original on 25 February 2018. Retrieved 3 January 2023. The TIOBE Programming Community index is an indicator of the popularity of programming languages Updated as required.
  39. ^ "PYPL PopularitY of Programming Language index". pypl.github.io. Archived from the original on 14 March 2017. Retrieved 26 March 2021.