Python (programming language) – Wikipedia

general-purpose program language

Python is a high-level, rede, general-purpose scheduling lyric. Its design doctrine emphasizes code legibility with the manipulation of significant indentation. [ 32 ] Python is dynamically-typed and garbage-collected. It supports multiple programming substitution class, including structured ( peculiarly procedural ), object-oriented and running program. It is frequently described as a “ batteries included ” language due to its comprehensive standard library. [ 33 ] [ 34 ]

Guido avant-garde Rossum began working on Python in the late 1980s as a successor to the ABC program linguistic process and first released it in 1991 as Python 0.9.0. [ 35 ] Python 2.0 was released in 2000 and introduced new features such as list comprehensions, cycle-detecting drivel solicitation, reference count, and Unicode support. Python 3.0, released in 2008, was a major revision that is not wholly backward-compatible with earlier versions. Python 2 was discontinued with adaptation 2.7.18 in 2020. [ 36 ] Python systematically ranks as one of the most popular programming languages. [ 37 ] [ 38 ] [ 39 ] [ 40 ]

history [edit ]

Python was conceived in the late 1980s [ 41 ] by Guido van Rossum at Centrum Wiskunde & Informatica ( CWI ) in the Netherlands as a successor to the ABC programming speech, which was inspired by SETL, [ 42 ] able of exception handling and interfacing with the Amoeba operate system. [ 13 ] Its execution began in December 1989. [ 43 ] Van Rossum shouldered sole province for the project, as the lead developer, until 12 July 2018, when he announced his “ permanent wave vacation ” from his responsibilities as Python ‘s “ beneficent dictator for biography “, a championship the Python community bestowed upon him to reflect his long-run commitment as the project ‘s chief decision-maker. [ 44 ] In January 2019, active voice Python core developers elected a five-member Steering Council to lead the plan. [ 45 ] [ 46 ] Python 2.0 was released on 16 October 2000, with many major newfangled features. [ 47 ] Python 3.0, released on 3 December 2008, with many of its major features backported to Python 2.6.x [ 48 ] and 2.7.x. Releases of Python 3 include the 2to3 utility, which automates the translation of Python 2 code to Python 3. [ 49 ] Python 2.7 ‘s end-of-life was initially set for 2015, then postponed to 2020 out of refer that a large body of existing code could not easily be forward-ported to Python 3. [ 50 ] [ 51 ] No further security system patches or other improvements will be released for it. [ 52 ] [ 53 ] With Python 2 ‘s end-of-life, only Python 3.6.x [ 54 ] and later were supported. late, confirm for 3.6 was besides discontinued. In 2021, Python 3.9.2 and 3.8.8 were expedited [ 55 ] as all versions of Python ( including 2.7 [ 56 ] ) had security issues leading to possible remote control code execution [ 57 ] and web hoard poison. [ 58 ] In 2022, Python 3.10.4 and 3.9.12 were expedited [ 59 ] and thus were older releases including 3.8.13, and 3.7.13 because of many security issues in 2022. [ 60 ] Python 3.9.13 is the latest 3.9 version, and from now on 3.9 ( and older ; 3.8 and 3.7 ) will merely get security updates. [ 61 ]

Design philosophy and features [edit ]

Python is a multi-paradigm scheduling linguistic process. Object-oriented program and structured programming are in full supported, and many of its features support running scheduling and aspect-oriented programming ( including metaprogramming [ 62 ] and metaobjects [ magic methods ] ). [ 63 ] Many other paradigms are supported via extensions, including plan by contract [ 64 ] [ 65 ] and logic programming. [ 66 ] Python uses active typing and a combination of reference count and a cycle-detecting garbage collector for memory management. [ 67 ] It uses dynamic name solution ( late ski binding ), which binds method acting and variable names during program execution. Its design offers some defend for functional program in the Lisp tradition. It has filter, map and reduce functions ; list comprehensions, dictionaries, sets, and generator expressions. [ 68 ] The standard library has two modules ( itertools and functools ) that follow through functional tools borrowed from Haskell and Standard ML. [ 69 ] Its core doctrine is summarized in the text file The Zen of Python ( PEP 20 ), which includes aphorisms such as : [ 70 ]

  • Beautiful is better than ugly.
  • Explicit is better than implicit.
  • Simple is better than complex.
  • Complex is better than complicated.
  • Readability counts.

rather than building all of its functionality into its effect, Python was designed to be highly extensile via modules. This compress modularity has made it particularly popular as a mean of adding programmable interfaces to existing applications. Van Rossum ‘s vision of a humble core speech with a boastfully standard library and easily extensile interpreter stemmed from his frustrations with ABC, which espoused the opposite approach. [ 41 ] Python strives for a bare, less-cluttered syntax and grammar while giving developers a choice in their code methodology. In contrast to Perl ‘s “ there is more than one room to do it “ motto, Python embraces a “ there should be one—and preferably merely one—obvious room to do it ” doctrine. [ 70 ] Alex Martelli, a Fellow at the Python Software Foundation and Python bible generator, wrote : “ To describe something as ‘clever ‘ is not considered a compliment in the Python polish. ” [ 71 ] Python ‘s developers strive to avoid previous optimization and resist patches to non-critical parts of the CPython mention implementation that would offer borderline increases in accelerate at the cost of clarity. [ 72 ] When rush is authoritative, a Python programmer can move time-critical functions to extension modules written in languages such as C ; or use PyPy, a just-in-time compiler. Cython is besides available, which translates a Python handwriting into C and makes direct C-level API calls into the Python interpreter. Python ‘s developers aim for it to be playfulness to use. This is reflected in its name—a protection to the british comedy group Monty Python [ 73 ] —and in occasionally playful approaches to tutorials and reference book materials, such as examples that refer to spam and eggs ( a reference point to a Monty Python sketch ) rather of the standard foo and cake. [ 74 ] [ 75 ] A coarse neologism in the Python residential district is pythonic, which has a wide range of meanings related to program style. “ Pythonic ” code may use Python idioms well, be natural or show fluency in the speech, or conform with Python ‘s minimalist philosophy and vehemence on legibility. Code that is difficult to understand or reads like a grating recording from another program terminology is called unpythonic. [ 76 ] [ 77 ] Python users and admirers, particularly those considered knowing or experienced, are much referred to as Pythonistas. [ 78 ] [ 79 ]

Syntax and semantics [edit ]

Python is meant to be an easily clear terminology. Its format is visually unclutter and often uses english keywords where other languages use punctuation. Unlike many early languages, it does not use curly brackets to delimit blocks, and semicolons after statements are allowed but rarely used. It has fewer syntactic exceptions and special cases than C or Pascal. [ 80 ]

indentation [edit ]

Python uses whitespace indentation, preferably than curly brackets or keywords, to delimit blocks. An increase in indentation comes after certain statements ; a decrease in pitting signifies the end of the current block. [ 81 ] Thus, the program ‘s ocular structure accurately represents its semantic structure. [ 82 ] This feature is sometimes termed the off-side rule. Some other languages use indentation this way ; but in most, indentation has no semantic meaning. The recommend indentation size is four spaces. [ 83 ]

Statements and see flow [edit ]

Python ‘s statements include :

  • The assignment statement, using a single equals sign =
  • The if statement, which conditionally executes a block of code, along with else and elif (a contraction of else-if)
  • The for statement, which iterates over an iterable object, capturing each element to a local variable for use by the attached block
  • The while statement, which executes a block of code as long as its condition is true
  • The try statement, which allows exceptions raised in its attached code block to be caught and handled by except clauses (or new syntax except* in Python 3.11 for exception groups[84]); it also ensures that clean-up code in a finally block is always run regardless of how the block exits
  • The raise statement, used to raise a specified exception or re-raise a caught exception
  • The class statement, which executes a block of code and attaches its local namespace to a class, for use in object-oriented programming
  • The def statement, which defines a function or method
  • The with statement, which encloses a code block within a context manager (for example, acquiring a lock before it is run, then releasing the lock; or opening and closing a file), allowing resource-acquisition-is-initialization (RAII)-like behavior and replacing a common try/finally idiom[85]
  • The break statement, which exits a loop
  • The continue statement, which skips the current iteration and continues with the next
  • The del statement, which removes a variable—deleting the reference from the name to the value, and producing an error if the variable is referred to before it is redefined
  • The pass statement, serving as a NOP, syntactically needed to create an empty code block
  • The assert statement, used in debugging to check for conditions that should apply
  • The yield statement, which returns a value from a generator function (and also an operator); used to implement coroutines
  • The return statement, used to return a value from a function
  • The import statement, used to import modules whose functions or variables can be used in the current program

The grant argument ( = ) binds a mention as a reference to a separate, dynamically-allocated object. Variables may subsequently be rebound at any fourth dimension to any object. In Python, a variable star diagnose is a generic reference holder without a fixed data type ; however, it constantly refers to some object with a type. This is called moral force type —in contrast to statically-typed languages, where each variable may contain only a value of a certain type. Python does not support tail call optimization or excellent continuations, and, according to vanguard Rossum, it never will. [ 86 ] [ 87 ] however, better support for coroutine -like functionality is provided by extending Python ‘s generators. [ 88 ] Before 2.5, generators were faineant iterators ; data was passed unidirectionally out of the generator. From Python 2.5 on, it is possible to pass data back into a generator function ; and from adaptation 3.3, it can be passed through multiple push-down list levels. [ 89 ]

Expressions [edit ]

Some Python expressions are alike to those in languages such as C and Java, while some are not :
In Python, a distinction between expressions and statements is rigidly enforce, in contrast to languages such as Common Lisp, Scheme, or Ruby. This leads to duplicating some functionality. For exemplar :

  • List comprehensions vs. for-loops
  • Conditional expressions vs. if blocks
  • The eval() vs. exec() built-in functions (in Python 2, exec is a statement); the former is for expressions, the latter is for statements

Statements can not be a part of an expression—so number and early comprehensions or lambda expressions, all being expressions, can not contain statements. A particular character is that an grant statement such as a = 1 can not form part of the conditional expression of a conditional instruction. This has the advantage of avoiding a classical C error of mistaking an assignment operator = for an equality operator == in conditions : if (c = 1) { ... } is syntactically valid ( but credibly unintended ) C code, but if c = 1: ... causes a syntax mistake in Python .

Methods [edit ]

Methods on objects are functions attached to the object ‘s class ; the syntax instance.method(argument) is, for normal methods and functions, syntactic carbohydrate for Class.method(instance, argument). Python methods have an explicit self parameter to access case data, in contrast to the implicit self ( or this ) in some other object-oriented programming languages ( for example, C++, Java, Objective-C, Ruby ). [ 100 ] Python besides provides methods, often called dunder methods ( due to their names beginning and ending with double-underscores ), to allow user-defined classes to modify how they are handled by native operations including length, comparison, in arithmetical operations and type conversion. [ 101 ]

Typing [edit ]

The standard type hierarchy in Python 3 Python uses duck type and has typed objects but untyped variable names. type constraints are not checked at roll up time ; quite, operations on an object may fail, signifying that it is not of a suitable type. Despite being dynamically-typed, Python is strongly-typed, forbidding operations that are not chiseled ( for exercise, adding a number to a string ) rather than mutely attempting to make sense of them. Python allows programmers to define their own types using classes, most frequently used for object-oriented scheduling. New instances of classes are constructed by calling the class ( for example, SpamClass() or EggsClass() ), and the classes are instances of the metaclass type ( itself an case of itself ), allowing metaprogramming and expression. Before adaptation 3.0, Python had two kinds of classes ( both using the lapp syntax ) : old-style and new-style, [ 102 ] current Python versions alone support the semantics new expressive style. The long-run design is to support gradual type. [ 103 ] Python ‘s syntax allows specifying static types, but they are not checked in the default execution, CPython. An experimental optional static type-checker, mypy, supports compile-time type check. [ 104 ]

Summary of Python 3’s built-in types
Type Mutability Description Syntax examples
bool immutable Boolean value true
bytearray mutable Sequence of bytes bytearray ( b 'Some ASCII ' )
bytearray ( b `` Some ASCII '' )
bytearray ( [ 119, 105, 107, 105 ] )
bytes immutable Sequence of bytes b 'Some ASCII '
b `` Some ASCII ''
bytes ( [ 119, 105, 107, 105 ] )
complex immutable Complex number with real and imaginary parts 3 + 2.7 j
3 + 2.7 joule
dict mutable Associative array (or dictionary) of key and value pairs; can contain mixed types (keys and values), keys must be a hashable type { 'key1 ' : 1.0, 3 : delusive }
{ }
types.EllipsisType immutable An ellipsis placeholder to be used as an index in NumPy arrays ...
float immutable Double-precision floating-point number. The precision is machine-dependent but in practice is generally implemented as a 64-bit IEEE 754 number with 53 bits of precision.[105] 1.33333
frozenset immutable Unordered set, contains no duplicates; can contain mixed types, if hashable frozenset ( [ 4.0, 'string ', true ] )
int immutable Integer of unlimited magnitude[106] 42
list mutable List, can contain mixed types [ 4.0, 'string ', true ]
[ ]
types.NoneType immutable An object representing the absence of a value, often called null in other languages none
types.NotImplementedType immutable A placeholder that can be returned from overloaded operators to indicate unsupported operand types. NotImplemented
range immutable A Sequence of numbers commonly used for looping specific number of times in for loops[107] range ( - 1, 10 )
range ( 10, - 5, - 2 )
set mutable Unordered set, contains no duplicates; can contain mixed types, if hashable { 4.0, 'string ', dependable }
determined ( )
str immutable A character string: sequence of Unicode codepoints 'Wikipedia '
`` Wikipedia ''

 `` `` '' Spanning
 lines '' '' '' 
tuple immutable Can contain mixed types ( 4.0, 'string ', true )
( 'single chemical element ', )
( )

arithmetic operations [edit ]

Python has the common symbols for arithmetical operators ( +, -, *, / ), the deck division operator // and the modulo operation % ( where the remainder can be negative, e.g. 4 % -3 == -2 ). It besides has ** for exponentiation, e.g. 5**3 == 125 and 9**0.5 == 3.0, and a matrix‑multiplication operator @. [ 108 ] These operators work like in traditional mathematics ; with the same precession rules, the operators infix ( + and - can besides be unary to represent plus and minus numbers respectively ). The division between integers produces floating-point results. The behavior of division has changed significantly over time : [ 109 ]

  • Current Python (i.e. since 3.0) changed / to always be floating-point division, e.g. 5 / 2 == 2.5.
  • The floor division // operator was introduced. So 7//3 == 2, -7//3 == -3, 7.5//3 == 2.0 and -7.5//3 == -3.0. Adding from __future__ significance division causes a module used in Python 2.7 to use Python 3.0 rules for division (see above).

In Python terms, / is true division ( or just division ), and // is floor division. / before version 3.0 is classic division. [ 109 ] Rounding towards negative eternity, though different from most languages, adds consistency. For case, it means that the equation (a + b)//b == a//b + 1 is constantly true. It besides means that the equality b*(a//b) + a%b == a is valid for both plus and negative values of a. however, maintaining the robustness of this equality means that while the resultant role of a%b is, as expected, in the half-open interval [ 0, b ), where b is a convinced integer, it has to lie in the interval ( b, 0 ] when b is veto. [ 110 ] Python provides a round function for rounding a float to the nearest integer. For tie-breaking, Python 3 uses round to even : round(1.5) and round(2.5) both produce 2. [ 111 ] Versions before 3 practice round-away-from-zero : round(0.5) is 1.0, round(-0.5) is −1.0. [ 112 ] Python allows boolean expressions with multiple equality relations in a manner that is reproducible with general function in mathematics. For example, the saying a < b < c tests whether a is less than b and b is less than c. [ 113 ] C-derived languages interpret this construction differently : in C, the expression would first evaluate a < b, resulting in 0 or 1, and that result would then be compared with c. [ 114 ] Python uses arbitrary-precision arithmetic for all integer operations. The Decimal type/class in the decimal module provides decimal fraction floating-point numbers to a pre-defined arbitrary preciseness and several rounding modes. [ 115 ] The Fraction class in the fractions module provides arbitrary preciseness for intellectual numbers. [ 116 ] due to Python 's across-the-board mathematics library, and the third-party library NumPy that far extends the native capabilities, it is frequently used as a scientific script speech to care in problems such as numeral data serve and manipulation. [ 117 ] [ 118 ]

Programming examples [edit ]

Hello earth program :

 print ( 'Hello, global ! ' )

plan to calculate the factorial of a positive integer :

 n  =  int ( input ( 'Type a number, and its factorial will be printed : ' ) )

 if  north  <  0 :
     recruit  ValueError ( 'You must enter a non-negative integer ' )

 factorial  =  1
 for  i  in  rate ( 2,  north  +  1 ) :
     factorial  *=  one

 print ( factorial )

Libraries [edit ]

Python 's large standard library [ 119 ] provides instrument suited to many tasks, and is normally cited as one of its greatest strengths. For Internet-facing applications, many standard formats and protocols such as MIME and HTTP are supported. It includes modules for creating graphic drug user interfaces, connecting to relational databases, generating pseudorandom numbers, arithmetical with arbitrary-precision decimals, [ 120 ] manipulating even expressions, and whole testing. Some parts of the standard library are covered by specifications—for example, the Web Server Gateway Interface ( WSGI ) implementation wsgiref follows PEP 333 [ 121 ] —but most are specified by their code, internal documentation, and examination suites. however, because most of the standard library is cross-platform Python code, only a few modules need altering or rewriting for form implementations. As of January 2022, the Python Package Index ( PyPI ), the official depository for third-party Python software, contains over 350,000 [ 122 ] packages with a wide range of functionality, including :

Development environments [edit ]

Most python implementations ( including CPython ) include a read–eval–print cringle ( REPL ), permitting them to function as a dominate line interpreter for which users enter statements consecutive and meet results immediately. Python besides comes with an Integrated development environment ( IDE ) called IDLE, which is more beginner-oriented. other shells, including IDLE and IPython, add further abilities such as improved auto-completion, seance state retention and syntax highlight. deoxyadenosine monophosphate well as standard desktop integrated development environments, there are Web browser -based IDEs, including SageMath, for developing science- and math-related programs ; PythonAnywhere, a browser-based IDE and hosting environment ; and Canopy IDE, a commercial IDE emphasizing scientific calculate. [ 123 ]

Implementations [edit ]

Reference execution [edit ]

CPython is the citation execution of Python. It is written in C, meeting the C89 standard ( Python 3.11 uses C11 [ 124 ] with several blue-ribbon C99 features ( With former C versions out, it is considered outdated. [ 125 ] [ 126 ] CPython includes its own C extensions, but third-party extensions are not limited to older C versions—e.g. they can be implemented with C11 or C++. [ 127 ] [ 128 ] ) It compiles Python programs into an average bytecode [ 129 ] which is then executed by its virtual car. [ 130 ] CPython is distributed with a big standard library written in a mix of C and native Python, and is available for many platforms, including Windows ( starting with Python 3.9, the Python installer measuredly fails to install on Windows 7 and 8 ; [ 131 ] [ 132 ] Windows XP was supported until Python 3.5 ) and most modern Unix-like systems, including macOS ( and Apple M1 Macs, since Python 3.9.1, with experimental installer ) and unofficial support for e.g. VMS. [ 133 ] Platform portability was one of its earliest priorities. [ 134 ] ( During Python 1 and 2 development, even OS/2 and Solaris were supported, [ 135 ] but support has since been dropped for many platforms. )

other implementations [edit ]

  • PyPy is a fast, compliant interpreter of Python 2.7 and 3.8.[136] [137] Its just-in-time compiler brings a significant speed improvement over CPython but some libraries written in C cannot be used with it.[138]
  • Stackless Python is a significant fork of CPython that implements microthreads; it does not use the call stack in the same way, thus allowing massively concurrent programs. PyPy also has a stackless version.[139]
  • MicroPython and CircuitPython are Python 3 variants optimized for microcontrollers, including Lego Mindstorms EV3.[140]
  • Pyston is a variant of the Python runtime that uses just-in-time compilation to speed up the execution of Python programs.[141]
  • Cinder is a performance-oriented fork of CPython 3.8 that contains a number of optimizations including bytecode inline caching, eager evaluation of coroutines, a method-at-a-time JIT and an experimental bytecode compiler.[142]

unsupported implementations [edit ]

other just-in-time Python compilers have been developed, but are now unsupported :

  • Google began a project named Unladen Swallow in 2009, with the aim of speeding up the Python interpreter fivefold by using the LLVM, and of improving its multithreading ability to scale to thousands of cores,[143] while ordinary implementations suffer from the global interpreter lock.
  • Psyco is a discontinued just-in-time specializing compiler that integrates with CPython and transforms bytecode to machine code at runtime. The emitted code is specialized for certain data types and is faster than the standard Python code. Psyco does not support Python 2.7 or later.
  • PyS60 was a Python 2 interpreter for Series 60 mobile phones released by Nokia in 2005. It implemented many of the modules from the standard library and some additional modules for integrating with the Symbian operating system. The Nokia N900 also supports Python with GTK widget libraries, enabling programs to be written and run on the target device.[144]

Cross-compilers to early languages [edit ]

There are respective compilers to high-level object languages, with either unexclusive Python, a restrict subset of Python, or a lyric like to Python as the beginning lyric :

  • Brython,[145] Transcrypt[146][147] and Pyjs (latest release in 2012) compile Python to JavaScript.
  • Cython compiles (a superset of) Python 2.7 to C (while the resulting code is also usable with Python 3 and also e.g. C++).
  • Nuitka compiles Python into C.[148]
  • Numba uses LLVM to compile a subset of Python to machine code.
  • Pythran compiles a subset of Python 3 to C++ (C++11).[149][150][151]
  • RPython can be compiled to C, and is used to build the PyPy interpreter of Python.

Specialized :

  • MyHDL is a Python-based hardware description language (HDL), that converts MyHDL code to Verilog or VHDL code.

Older projects ( or not to be used with Python 3.x and latest syntax ) :

  • Google's Grumpy (latest release in 2017) transpiles Python 2 to Go.[152][153][154]
  • IronPython allows running Python 2.7 programs (and an alpha, released in 2021, is also available for "Python 3.4, although features and behaviors from later versions may be included"[155]) on the .NET Common Language Runtime.[156]
  • Jython compiles Python 2.7 to Java bytecode, allowing the use of the Java libraries from a Python program.[157]
  • Pyrex (latest release in 2010) and Shed Skin (latest release in 2013) compile to C and C++ respectively.

performance [edit ]

Performance comparison of versatile Python implementations on a non-numerical ( combinatorial ) workload was presented at EuroSciPy '13. [ 158 ] Python 's performance compared to other program languages is besides benchmarked by The Computer Language Benchmarks Game. [ 159 ]

Development [edit ]

Python 's development is conducted largely through the Python Enhancement Proposal ( PEP ) march, the primary mechanism for proposing major newly features, collecting community stimulation on issues, and documenting Python design decisions. [ 160 ] Python coding dash is covered in PEP 8. [ 161 ] Outstanding PEPs are reviewed and commented on by the Python community and the guidance council. [ 160 ] enhancement of the speech corresponds with the development of the CPython reference implementation. The mailing tilt python-dev is the primary forum for the lyric 's development. specific issues are discussed in the Roundup bug tracker hosted at [ 162 ] Development originally took locate on a self-hosted source-code repository running Mercurial, until Python moved to GitHub in January 2017. [ 163 ] CPython 's public releases come in three types, distinguished by which region of the version issue is incremented :

  • Backward-incompatible versions, where code is expected to break and needs to be manually ported. The first part of the version number is incremented. These releases happen infrequently—version 3.0 was released 8 years after 2.0. According to Guido van Rossum, a version 4.0 is very unlikely to ever happen.[164]
  • Major or "feature" releases are largely compatible with the previous version but introduce new features. The second part of the version number is incremented. Starting with Python 3.9, these releases are expected to happen annually.[165][166] Each major version is supported by bug fixes for several years after its release.[167]
  • Bugfix releases,[168] which introduce no new features, occur about every 3 months and are made when a sufficient number of bugs have been fixed upstream since the last release. Security vulnerabilities are also patched in these releases. The third and final part of the version number is incremented.[168]

many alpha, beta, and release-candidates are besides released as previews and for testing before final releases. Although there is a rough schedule for each unblock, they are often delayed if the code is not fix. Python 's development team monitors the state of matter of the code by running the bombastic unit test suite during growth. [ 169 ] The major academic conference on Python is PyCon. There are besides special Python mentor programmes, such as Pyladies. Python 3.10 deprecated wstr ( to be removed in Python 3.12 ; meaning Python extensions [ 170 ] need to be modified by then ), [ 171 ] and added pattern matching to the linguistic process. [ 172 ]

API documentation generators [edit ]

Tools that can generate software documentation for Python API include pydoc ( available as part of the standard library ), Sphinx, Pdoc and its forks, Doxygen and Graphviz, among others. [ 173 ]

Naming [edit ]

Python 's name is derived from the british drollery group Monty Python, whom Python creator Guido van Rossum enjoyed while developing the speech. Monty Python references appear frequently in Python code and polish ; [ 174 ] for example, the metasyntactic variables much used in Python literature are spam and eggs alternatively of the traditional foo and bar. [ 174 ] [ 175 ] The official Python software documentation besides contains diverse references to Monty Python routines. [ 176 ] [ 177 ] The prefix Py- is used to show that something is related to Python. Examples of the use of this prefix in names of Python applications or libraries include Pygame, a tie down of SDL to Python ( normally used to create games ) ; PyQt and PyGTK, which bind Qt and GTK to Python respectively ; and PyPy, a Python implementation in the first place written in Python .

popularity [edit ]

Since 2003, Python has systematically ranked in the exceed ten most popular program languages in the TIOBE Programming Community Index where, as of October 2021, it is the most popular lyric ( ahead of Java, and C ). [ 178 ] It was selected Programming Language of the Year ( for `` the highest raise in ratings in a year '' ) in 2007, 2010, 2018, and 2020 ( the only lyric to do so four times [ 179 ] ). [ 180 ] An empirical discipline found that scripting languages, such as Python, are more generative than conventional languages, such as C and Java, for programming problems involving string handling and search in a dictionary, and determined that memory consumption was frequently `` better than Java and not much worse than C or C++ ''. [ 181 ] large organizations that use Python include Wikipedia, Google, [ 182 ] Yahoo !, [ 183 ] CERN, [ 184 ] NASA, [ 185 ] Facebook, [ 186 ] Amazon, Instagram, [ 187 ] Spotify, [ 188 ] and some smaller entities like ILM [ 189 ] and ITA. [ 190 ] The social news networking site Reddit was written by and large in Python. [ 191 ]

Uses [edit ]

Python Powered Python can serve as a script terminology for web applications, for example, via mod_wsgi for the Apache webserver. [ 192 ] With Web Server Gateway Interface, a standard API has evolved to facilitate these applications. Web frameworks like Django, Pylons, Pyramid, TurboGears, web2py, Tornado, Flask, Bottle, and Zope support developers in the purpose and maintenance of complex applications. Pyjs and IronPython can be used to develop the client-side of Ajax-based applications. SQLAlchemy can be used as a datum plotter to a relational database. Twisted is a model to plan communications between computers, and is used ( for exercise ) by Dropbox. Libraries such as NumPy, SciPy, and Matplotlib allow the effective use of Python in scientific computer science, [ 193 ] [ 194 ] with specify libraries such as Biopython and Astropy providing domain-specific functionality. SageMath is a computer algebra organization with a notebook interface programmable in Python : its library covers many aspects of mathematics, including algebra, combinatorics, numeral mathematics, count hypothesis, and tartar. [ 195 ] OpenCV has Python bindings with a ample rig of features for calculator vision and prototype work. [ 196 ] Python is normally used in artificial intelligence projects and machine teach projects with the avail of libraries like TensorFlow, Keras, Pytorch, and Scikit-learn. [ 197 ] [ 198 ] [ 199 ] [ 200 ] As a script language with a modular architecture, simple syntax, and rich people textbook action tools, Python is often used for natural language processing. [ 201 ] Python can besides be used to create games, with libraries such as Pygame, which can make 2D games. Python has been successfully embedded in many software products as a script linguistic process, including in finite element method acting software such as Abaqus, 3D parametric modeler like FreeCAD, 3D liveliness packages such as 3ds Max, Blender, Cinema 4D, Lightwave, Houdini, Maya, modo, MotionBuilder, Softimage, the ocular effects compositor Nuke, 2D imaging programs like GIMP, [ 202 ] Inkscape, Scribus and Paint Shop Pro, [ 203 ] and musical note programs like scorewriter and gallinago. GNU Debugger uses Python as a pretty printer to show building complex structures such as C++ containers. Esri promotes Python as the best option for writing scripts in ArcGIS. [ 204 ] It has besides been used in several television games, [ 205 ] [ 206 ] and has been adopted as beginning of the three available programming languages in Google App Engine, the other two being Java and Go. [ 207 ] many operating systems include Python as a standard component. It ships with most linux distributions, [ 208 ] AmigaOS 4 ( using Python 2.7 ), FreeBSD ( as a box ), NetBSD, OpenBSD ( as a software ) and macOS and can be used from the control line ( terminal ). many Linux distributions use installers written in Python : Ubuntu uses the Ubiquity installer, while Red Hat Linux and Fedora Linux use the Anaconda installer. Gentoo Linux uses Python in its package management system, Portage. Python is used extensively in the data security industry, including in feat growth. [ 209 ] [ 210 ] Most of the Sugar software for the One Laptop per Child XO, now [ when? ] developed at Sugar Labs, is written in Python. [ 211 ] The Raspberry Pi single-board computer project has adopted Python as its main user-programming terminology. LibreOffice includes Python and intends to replace Java with Python. Its Python Scripting Provider is a core feature of speech [ 212 ] since Version 4.0 from 7 February 2013 .

Languages influenced by Python [edit ]

Python 's plan and doctrine have influenced many other programming languages :

  • Boo uses indentation, a similar syntax, and a similar object model.[213]
  • Cobra uses indentation and a similar syntax, and its Acknowledgements document lists Python first among languages that influenced it.[214]
  • CoffeeScript, a programming language that cross-compiles to JavaScript, has Python-inspired syntax.
  • ECMAScript/JavaScript borrowed iterators and generators from Python.[215]
  • GDScript, a scripting language very similar to Python, built-in to the Godot game engine.[216]
  • Go is designed for the "speed of working in a dynamic language like Python"[217] and shares the same syntax for slicing arrays.
  • Groovy was motivated by the desire to bring the Python design philosophy to Java.[218]
  • Julia was designed to be "as usable for general programming as Python".[28]
  • Nim uses indentation and similar syntax.[219]
  • Ruby's creator, Yukihiro Matsumoto, has said: "I wanted a scripting language that was more powerful than Perl, and more object-oriented than Python. That's why I decided to design my own language."[220]
  • Swift, a programming language developed by Apple, has some Python-inspired syntax.[221]

Python 's exploitation practices have besides been emulated by other languages. For example, the practice of requiring a text file describing the rationale for, and issues surrounding, a change to the linguistic process ( in Python, a PEP ) is besides used in Tcl, [ 222 ] Erlang, [ 223 ] and Swift. [ 224 ]

See besides [edit ]

References [edit ]

Sources [edit ]

further read [edit ]

reference :
Category : crypto topics

Leave a Reply

Your email address will not be published.