Python (programming language)

Python
Python logo and wordmark.svg
ParadigmMulti-paradigm: functional, imperative, object-oriented, structured, reflective
Designed byGuido van Rossum
DeveloperPython Software Foundation
First appeared1991 (1991)[1]
Stable release
3.9.2[2] Edit this on Wikidata / 19 February 2021 (19 February 2021)
Preview release
3.10.0a5[3] Edit this on Wikidata / 3 February 2021 (3 February 2021)
Typing disciplineDuck, dynamic, strong typing;[4] gradual (since 3.5, but ignored in CPython)[5]
OSLinux, macOS, Windows 8 and later
and more
LicensePython Software Foundation License
Filename extensions.py, .pyi, .pyc, .pyd, .pyo (prior to 3.5),[6] .pyw, .pyz (since 3.5)[7]
Websitewww.python.org
Major implementations
CPython, PyPy, Stackless Python, MicroPython, CircuitPython, IronPython, Jython
Dialects
Cython, RPython, Starlark[8]
Influenced by
ABC,[9] Ada,[10] ALGOL 68,[11] APL,[12] C,[13] C++,[14] CLU,[15] Dylan,[16] Haskell,[17] Icon,[18] Java,[19] Lisp,[20] Modula-3,[14] Perl, Standard ML[12]
Influenced
Apache Groovy, Boo, Cobra, CoffeeScript,[21] D, F#, Genie,[22] Go, JavaScript,[23][24] Julia,[25] Nim, Ring,[26] Ruby,[27] Swift[28]

Python is an interpreted, high-level and general-purpose programming language. Python's design philosophy emphasizes code readability with its notable use of significant indentation. Its language constructs and object-oriented approach aim to help programmers write clear, logical code for small and large-scale projects.[29]

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

Python was created in the late 1980s, and first released in 1991, by Guido van Rossum as a successor to the ABC programming language. Python 2.0, released in 2000, introduced new features, such as list comprehensions, and a garbage collection system with reference counting, and was discontinued with version 2.7 in 2020.[31] Python 3.0, released in 2008, was a major revision of the language that is not completely backward-compatible and much Python 2 code does not run unmodified on Python 3. With Python 2's end-of-life (and pip having dropped support in 2021[32]), only Python 3.6.x[33] and later are supported, with older versions still supporting e.g. Windows 7 (and old installers not restricted to 64-bit Windows).

Python interpreters are supported for mainstream operating systems and available for a few more (and in the past supported many more). A global community of programmers develops and maintains CPython, a free and open-source[34] reference implementation. A non-profit organization, the Python Software Foundation, manages and directs resources for Python and CPython development.

As of February 2021, Python ranks third in TIOBE’s index of most popular programming languages, behind C and Java,[35] having previously gained second place and their award for the most popularity gain for 2020.[36]

  1. ^ Cite error: The named reference guttag was invoked but never defined (see the help page).
  2. ^ "Python 3.9.2 and 3.8.8 are now available". 19 February 2021. Retrieved 19 February 2021.
  3. ^ "Python 3.10.0a5". 2 February 2021. Retrieved 9 February 2021.
  4. ^ "Why is Python a dynamic language and also a strongly typed language - Python Wiki". wiki.python.org. Retrieved 27 January 2021.
  5. ^ "PEP 483 -- The Theory of Type Hints". Python.org.
  6. ^ File extension .pyo was removed in Python 3.5. See PEP 0488
  7. ^ Holth, Moore (30 March 2014). "PEP 0441 -- Improving Python ZIP Application Support". Retrieved 12 November 2015.
  8. ^ "Starlark Language". Retrieved 25 May 2019.
  9. ^ Cite error: The named reference faq-created was invoked but never defined (see the help page).
  10. ^ "Ada 83 Reference Manual (raise statement)".
  11. ^ Cite error: The named reference 98-interview was invoked but never defined (see the help page).
  12. ^ a b "itertools — Functions creating iterators for efficient looping — Python 3.7.1 documentation". docs.python.org.
  13. ^ Cite error: The named reference AutoNT-1 was invoked but never defined (see the help page).
  14. ^ a b Cite error: The named reference classmix was invoked but never defined (see the help page).
  15. ^ Cite error: The named reference effbot-call-by-object was invoked but never defined (see the help page).
  16. ^ Cite error: The named reference AutoNT-2 was invoked but never defined (see the help page).
  17. ^ Cite error: The named reference AutoNT-3 was invoked but never defined (see the help page).
  18. ^ Cite error: The named reference AutoNT-4 was invoked but never defined (see the help page).
  19. ^ Cite error: The named reference AutoNT-5 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. ^ "CoffeeScript". coffeescript.org.
  22. ^ "The Genie Programming Language Tutorial". Retrieved 28 February 2020.
  23. ^ "Perl and Python influences in JavaScript". www.2ality.com. 24 February 2013. Retrieved 15 May 2015.
  24. ^ Rauschmayer, Axel. "Chapter 3: The Nature of JavaScript; Influences". O'Reilly, Speaking JavaScript. Retrieved 15 May 2015.
  25. ^ Cite error: The named reference Julia was invoked but never defined (see the help page).
  26. ^ Ring Team (4 December 2017). "Ring and other languages". ring-lang.net. ring-lang.
  27. ^ Cite error: The named reference bini was invoked but never defined (see the help page).
  28. ^ Lattner, Chris (3 June 2014). "Chris Lattner's Homepage". Chris Lattner. 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.
  29. ^ Cite error: The named reference AutoNT-7 was invoked but never defined (see the help page).
  30. ^ Cite error: The named reference About was invoked but never defined (see the help page).
  31. ^ Peterson, Benjamin (20 April 2020). "Python Insider: Python 2.7.18, the last release of Python 2". Python Insider. Retrieved 27 April 2020.
  32. ^ https://github.com/pypa/pip/issues/6148
  33. ^ "Python Developer's Guide — Python Developer's Guide". devguide.python.org. Retrieved 17 December 2019.
  34. ^ "History and License". Retrieved 5 December 2016. "All Python Releases are Open Source"
  35. ^ TIOBE index (December 2020). "TIOBE Index for December 2020". TIOBE.com. Retrieved 20 December 2020.
  36. ^ "index | TIOBE - The Software Quality Company". www.tiobe.com. Retrieved 2 February 2021. Python has won the TIOBE programming language of the year award! This is for the fourth time in the history, which is a record! The title is awarded to the programming language that has gained most popularity in one year.