Python is a dynamic and strongly typed object-oriented programming language. It employs both duck typing and gradual typing (via type hints). It supports multiple programming paradigms including imperative (object-oriented, procedural) and declarative (functional, concurrent) flavors. But do not be fooled: while programming across paradigms is fully supported, everything in Python is an object.
Python was created by Guido van Rossum and first released in 1991. The Python Software Foundation manages and directs resources for Python and CPython development and receives proposals for changes to the language from members of the community via Python Enhancement Proposals or PEPs. It is considered a strong language for programmers starting their journey, with a welcoming community and many resources available to learners of all levels and persuasions.
Python puts a strong emphasis on code readability and (similar to Haskell) uses significant indentation to denote function, method, and class definitions. Code can be written and executed from the command line, in an interactive interpreter session, in JupyterLab (Jupyter notebook), or a wide variety of code editors and IDEs.
Python is used extensively in scientific computing, finance, games, networking, internet development, and in assembling pipelines of other programs.
The zen of Python (PEP 20) and What is Pythonic? lay out additional philosophies and perspectives on the language.
This track currently uses Python 3.9.0
.
It is highly recommended that students upgrade to at least Python 3.8
, as some features used by this track may not be supported in earlier versions.
That being said, most exercises can be completed using Python 3.7, and many can be worked in Python 3.6.
We will note when a feature is only available in a certain version.
Complete documentation for the current release of Python (3.9.7) can be found at docs.python.org.