Python is a modern, general-purpose, object-oriented, high-level programming language with a clean and expressive syntax. The following features make for easy code development and debugging in python:
Python code is interpreted: There is no need to compile the code. Your code is read by a python interpreter and made into executable instructions for your computer in real time.
Python is dynamically typed: There is no need to declare the type of a variable or the type of an input to a function.
Python has automatic garbage collection or memory management: There is no need to explicitly allocate memory for variables before you use them or deallocate them after use.
However, keep in mind that these features also make pure python code slower (than, say C) in repetitious loops because of repeated checking for the type of objects. Therefore many python modules (such as numpy
, which we shall see in detail soon), have C or other compiled code, which is then wrapped in python to take advantage of python's usability without losing speed.
There are at least four ways to interact with your Python 3 installation.
.py
Type the python command you use in your system (python
or python3
) to get this shell. I will use python3
since that is what my system requires, but please do make sure to replace it by python
if that's what is needed on your system. Here is an image of the interactive python shell within a terminal.
Note the following from the interactive session displayed in the figure above:
Computing the square root of a number using sqrt
is successful only after importing math
. Most of the functionality in Python is provided by modules, like the math
module. Some modules, like math
, come with python, while others must be installed after python is installed.
Strings that begin with #
(like "# works!
" in the figure) differentiate comments from code. This is the case in a python shell and also in the other forms of interacting with python discussed below.
The dir
command shows the facilities provided by a module. As you can see, the math
module contains many functions in addition to sqrt
.
A more powerful shell interactive environment is provided by the iPython shell (type in ipython
or ipython3
into your command prompt, or launch it from Anaconda navigator). The iPython shell has features like auto-completion, coloring, history of commands, automatic help by tacking on ?
, ability to interact with your operating system's commands, etc.