(python-language-chapter)=

# The Python language

**Authors**: _Chris Burns, Christophe Combelles, Emmanuelle Gouillart,
Gaël Varoquaux_

:::{topic} Python for scientific computing
We introduce here the Python language. Only the bare minimum
necessary for getting started with NumPy and SciPy is addressed here.
To learn more about the language, consider going through the
excellent tutorial <https://docs.python.org/3/tutorial>. Dedicated books
are also available, such as [Dive into Python 3](https://diveintopython3.net/).
:::

![](python-logo.png)

:::{tip}
Python is a **programming language**, as are C, Fortran, BASIC, PHP,
etc. Some specific features of Python are as follows:

- an _interpreted_ (as opposed to _compiled_) language. Contrary to e.g.
  C or Fortran, one does not compile Python code before executing it. In
  addition, Python can be used **interactively**: many Python
  interpreters are available, from which commands and scripts can be
  executed.
- a free software released under an **open-source** license: Python can
  be used and distributed free of charge, even for building commercial
  software.
- **multi-platform**: Python is available for all major operating
  systems, Windows, Linux/Unix, MacOS X, most likely your mobile phone
  OS, etc.
- a very readable language with clear non-verbose syntax
- a language for which a large variety of high-quality packages are
  available for various applications, from web frameworks to scientific
  computing.
- a language very easy to interface with other languages, in particular C
  and C++.
- Some other features of the language are illustrated just below. For
  example, Python is an object-oriented language, with dynamic typing
  (the same variable can contain objects of different types during the
  course of a program).

See <https://www.python.org/about/> for more information about
distinguishing features of Python.
:::
