In this notebook the basics of Python programming are familiarized and basic examples are provided. Because programming is easiest to learn by doing, this notebook is recommended to be read with Jupyter Notebook (http://jupyter.org/). In Jupyter the examples in the notebook can be run and customated interactively. Also own notes and code can be added beside this text. There is also a short exercise at the end of this document.
If you haven't installed Jupyter yet, you can also open the free test version at https://try.jupyter.org/.
Python is a programming language which newest version at the moment is Python 3 released in 2008. Python is quite easy to learn since the syntax of it is relatively simple. However Python is capable for more complex programming too.
In this notebook the basics of Python and some examples are introduced. The main point is to offer a compact overview of the most common things in Python in the sense of using it with CMS Open Data. This notebook won't cover every feature of Python. The official Python documentation is available at https://docs.python.org/3/.
Let's start with the traditional "Hello, world" example. Printing in Python is possible with the print( ) function. The function takes a printable object (e.g. a string, a number) as an argument inside the brackets.
Try to run the code cell below by first clicking it active and then pressing Ctrl + Enter.
print('Hello, world!')
Hello, world!
You can try to write to the code cell below a code that will print your name. Try to run the code after writing.
# These #-separated lines are comments. They will not affect to the code.
# Write a code that will print your name.
In programming one can save different values that are wanted to be used later to the variables. Different variable types are for example integer (int), floating-point number (float) and character string (string).
In Python it is easy to create variables since user doesn't have to set the type of the variable. Only the name of the variable and the value to it are needed. For example let's create a variable named particles and save the number 2700 to it:
particles = 2700
After doing that we can use the variable e.g. with printing the value saved to it. Note that now there are no quote marks inside the brackets of the print( ) function. The quote marks determine a string but now we want to print a variable so we will not use the quote marks. Of course you can modify the code and test what happens if they are added.
print(particles)
2700
Saving a string to a variable is done similarly. Let's create a variable called welcoming and let's save the string "Welcome to Python. Don't worry, it won't bite!". Let's also print that.
welcoming = "Welcome to Python. Don't worry, it won't bite!"
print(welcoming)
Welcome to Python. Don't worry, it won't bite!
With Python it is possible to do many kinds of calculations. Simplest calculations work by writing the calculation in the code and then running the code. The code will then return the result of the calculation.
3 + 5
8
print(3 - 5)
print(3 * 5)
# In Python 2 the result of the division is given as an integer. Python 3 can also return a float.
# In Python 2 this can be fixed by writing "from __future__ import division" in the code cell before the calculation.
print(7 / 5)
-2 15 1.4
In more complex calculations variables and lists can be used. In addition to the basic operations there are many ready made mathematical functions and commands available by using modules. The usage of modules is handled in the section Modules below.
With functions it is possible to do more complex things than e.g. printing or calculating one value. The function is a subprogram that will be called in the actual program to do the wanted thing. Practically the function is a piece of code that will do the task that it's written to do.
For example below we will recall the abs( ) function of the Python that will return the absolute value of the number (or the variable) given to it. The value given to the function is called an argument.
abs(-2)
2
The function abs( ) is an example of a built-in function of Python. Built-in functions are always available in Python. The list of the Python built-in functions can be found at https://docs.python.org/3/library/functions.html.
It is also possible to define functions by oneself. With Python 3 this can be done with the def command. Let's for example define a function that will calculate a square root of an argument given to it and also print a short text. Let's name our function as squaring.
def squaring(a):
print(a*a)
print("You just used the function!")
Now we can use the function we created by calling it with the name of it and by giving some argument to it.
squaring(4)
16 You just used the function!
There are lots of different functions already done for different purposes. Often the built-in functions won't be enough, so more functions can be added with modules. Modules are practically code files that include functions.
Modules can be imported with the import command. For example let's import the math module and use the function sqrt( ) of that module. When we call the function sqrt( ) we have to tell that we are calling it from the module math. This is done by writing the name of the module separated with the dot before the name of the function.
import math
math.sqrt(9)
3.0
How is it then possible to know which modules there are? One list of the Python modules can be found at https://docs.python.org/3/py-modindex.html. Also lots of packages can be used with Python. Packages include modules to Python. One list of different Python packages can be found at https://pypi.python.org/pypi.
Web search is also useful when it is wanted to find out which modules and packages there are. With couple of search words it is easy to find a module or a package which will do the mission that is wanted.
Write in the code cell below a program that will do the following steps: