py 1
py 1
Language
Python 3.x
3.8 2020-04-29
3.7 2018-06-27
3.6 2016-12-23
3.5 2015-09-13
3.4 2014-03-17
3.3 2012-09-29
3.2 2011-02-20
3.1 2009-06-26
3.0 2008-12-03
Python 2.x
2.7 2010-07-03
2.6 2008-10-02
2.5 2006-09-19
2.4 2004-11-30
2.3 2003-07-29
2.2 2001-12-21
2.1 2001-04-15
2.0 2000-10-16
Python is a widely used high-level programming language for general-purpose programming, created
by Guido van
Rossum and first released in 1991. Python features a dynamic type system and automatic memory
management
Python 2.x is the legacy version and will receive only security updates until 2020. No new features
will be
implemented. Note that many projects still use Python 2, although migrating to Python 3 is getting
easier.
You can download and install either version of Python here. See Python 3 vs. Python 2 for a
comparison between
them. In addition, some third-parties offer re-packaged versions of Python that add commonly used
libraries and
other features to ease setup for common use cases, such as math, data analysis or scientific use. See
the list at the
official site.
To confirm that Python was installed correctly, you can verify that by running the following command
in your
favorite terminal (If you are using Windows OS, you need to add path of python to the environment
variable before
$ python --version
If you have Python 3 installed, and it is your default version (see Troubleshooting for more details)
you should see
$ python --version
Python 3.6.0
If you have Python 2 installed, and it is your default version (see Troubleshooting for more details)
you should see
$ python --version
Python 2.7.13
If you have installed Python 3, but $ python --version outputs a Python 2 version, you also have
Python 2
installed. This is often the case on MacOS, and many Linux distributions. Use $ python3 instead to
explicitly use the
Python 3 interpreter.
IDLE is a simple editor for Python, that comes bundled with Python.
In older versions of Windows, it can be found at All Programs under the Windows menu.
In Windows 8+, search for IDLE or find it in the apps that are present in your system.
On Unix-based (including Mac) systems you can open it from the shell by typing $ idle
python_file.py.
>>>
Hit Enter .
Hello, World
print('Hello, World')
You can use the Python 3 print function in Python 2 with the following import statement:
Python 2 has a number of functionalities that can be optionally imported from Python 3 using the
__future__
$ python hello.py
Hello, World
You can also substitute hello.py with the path to your file. For example, if you have the file in your
home directory
and your user is "user" on Linux, you can type python /home/user/hello.py.
By executing (running) the python command in your terminal, you are presented with an interactive
Python shell.
This is also known as the Python Interpreter or a REPL (for 'Read Evaluate Print Loop').
$ python
Hello, World
>>>
If you want to run Python 3 from your terminal, execute the command python3.
$ python3
Hello, World
>>>
Alternatively, start the interactive prompt and load file with python -i <file.py>.
In command line, run:
$ python -i hello.py
"Hello World"
>>>
>>> exit()
or
>>> quit()
Alternatively, CTRL + D will close the shell and put you back on your terminal's command line.
If you want to cancel a command you're in the middle of typing and get back to a clean command
prompt, while
Run a small code snippet from a machine which lacks python installation(smartphones, tablets etc).
Examples:
Disclaimer: documentation author(s) are not affiliated with any resources listed below.
https://www.python.org/shell/ - The online Python shell hosted by the official Python website.
https://repl.it/languages/python3 - Powerful and simple online compiler, IDE and interpreter. Code,
compile,
project explorer.
Hello, World
This can be useful when concatenating the results of scripts together in the shell.
Package Management - The PyPA recommended tool for installing Python packages is PIP. To install,
on your
command line execute pip install <the package name>. For instance, pip install numpy. (Note: On
windows
you must add pip to your PATH environment variables. To avoid this, use python -m pip install <the
package
name>)
Shells - So far, we have discussed different ways to run code using Python's native interactive shell.
Shells use
Python's interpretive power for experimenting with code real-time. Alternative shells include IDLE - a
pre-bundled
Programs - For long-term storage you can save content to .py files and edit/execute them as scripts
or programs
with external tools e.g. shell, IDEs (such as PyCharm), Jupyter notebooks, etc. Intermediate users
may use these
tools; however, the methods discussed here are sufficient for getting started.
Python tutor allows you to step through Python code so you can visualize how the program will flow,
and helps you
PEP8 defines guidelines for formatting Python code. Formatting code well is important so you can
quickly read what
To create a variable in Python, all you need to do is specify the variable name, and then assign a
value to it.
type to it), assigning a value to a variable itself declares and initializes the variable with that value.
There's no way to
# Integer
a=2
print(a)
# Output: 2
# Integer
b = 9223372036854775807
print(b)
# Output: 9223372036854775807
# Floating point
pi = 3.14
print(pi)
# Output: 3.14
# String
c = 'A'
print(c)
# Output: A
# String
print(name)
# Boolean
q = True
print(q)
# Output: True
x = None
print(x)
# Output: None
Variable assignment works from left to right. So the following will give you an syntax error.
0=x
You can not use python's keywords as a valid variable name. You can see the list of keyword by:
import keyword
print(keyword.kwlist)
x = True # valid
_y = True # valid
2. The remainder of your variable name may consist of letters, numbers and underscores.
x=9
y = X*5
Even though there's no need to specify a data type when declaring a variable in Python, while
allocating the
necessary area in memory for the variable, the Python interpreter automatically picks the most
suitable built-in
a=2
print(type(a))
b = 9223372036854775807
print(type(b))
# Output: <type 'int'>
pi = 3.14
print(type(pi))
c = 'A'
print(type(c))
print(type(name))
q = True
print(type(q))
x = None
print(type(x))
Now you know the basics of assignment, let's get this subtlety about assignment in python out of the
way.
When you use = to do an assignment operation, what's on the left of = is a name for the object on
the right. Finally,
what = does is assign the reference of the object on the right to the name on the left.
That is:
a_name = an_object # "a_name" is now a name for the reference to the object "an_object"
So, from many assignment examples above, if we pick pi = 3.14, then pi is a name (not the name,
since an object
can have multiple names) for the object 3.14. If you don't understand something below, come back
to this point
and read this again! Also, you can take a look at this for a better understanding.
You can assign multiple values to multiple variables in one line. Note that there must be the same
number of
a, b, c = 1, 2, 3
print(a, b, c)
# Output: 1 2 3
a, b, c = 1, 2
=> a, b, c = 1, 2
a, b = 1, 2, 3
=> a, b = 1, 2, 3
The error in last example can be obviated by assigning remaining values to equal number of arbitrary
variables.
This dummy variable can have any name, but it is conventional to use the underscore (_) for
assigning unwanted
values:
a, b, _ = 1, 2, 3
print(a, b)
# Output: 1, 2
Note that the number of _ and number of remaining values must be equal. Otherwise 'too many
values to unpack
a, b, _ = 1,2,3,4
=>a, b, _ = 1,2,3,4
a=b=c=1
print(a, b, c)
# Output: 1 1 1
When using such cascading assignment, it is important to note that all three variables a, b and c refer
to the same
object in memory, an int object with the value of 1. In other words, a, b and c are three different
names given to the
same int object. Assigning a different object to one of them afterwards doesn't change the others,
just as expected:
a = b = c = 1 # all three names a, b and c refer to same int object with value 1
print(a, b, c)
# Output: 1 1 1
print(a, b, c)
The above is also true for mutable types (like list, dict, etc.) just as it is true for immutable types (like
int, string,
tuple, etc.):
x = y = [7, 8, 9] # x and y refer to the same list object just created, [7, 8, 9]
# Output: [7, 8, 9]
So far so good. Things are a bit different when it comes to modifying the object (in contrast to
assigning the name to
a different object, which we did above) when the cascading assignment is used for mutable types.
Take a look
x = y = [7, 8, 9] # x and y are two different names for the same list object just created, [7,
8, 9]
x[0] = 13 # we are updating the value of the list [7, 8, 9] through one of its names, x
in this case
print(y) # printing the value of the list using its other name
Nested lists are also valid in python. This means that a list can contain another list as an element.
# Output: [3, 4, 5]
print x[2][1]
# Output: 4
Lastly, variables in Python do not have to stay the same type as which they were first defined -- you
can simply use
a=2
print(a)
# Output: 2
a = "New value"
print(a)
If this bothers you, think about the fact that what's on the left of = is just a name for an object. First
you call the int
object with value 2 a, then you change your mind and decide to give the name a to a string object,
having value
Python uses indentation to define control and loop constructs. This contributes to Python's
readability, however, it
requires the programmer to pay close attention to the use of whitespace. Thus, editor miscalibration
could result in
Python uses the colon symbol (:) and indentation for showing where blocks of code begin and end (If
you come
from another language, do not confuse this with somehow being related to the ternary operator).
That is, blocks in
Python, such as functions, loops, if clauses and other constructs, have no ending identifiers. All
blocks start with a
For example:
or
Blocks that contain exactly one single-line statement may be put on the same line, though this form
is generally not
if a > b: print(a)
else: print(b)
Attempting to do this with more than a single statement will not work:
if x > y: y = x
An empty block causes an IndentationError. Use pass (a command that does nothing) when you have
a block with
no content:
def will_be_implemented_later():
pass
Using tabs exclusively is possible but PEP 8, the style guide for Python code, states that spaces are
preferred.
Python 3 disallows mixing the use of tabs and spaces for indentation. In such case a compile-time
error is
generated: Inconsistent use of tabs and spaces in indentation and the program will not run.