Introduction to Python
The programming language we will use in this course is Python.
Python is a popular language in industry and research with a number of libraries very useful for mathematics:
- Symbolic mathematics with
sympy
- Numerical mathematics with
numpy
- Machine learning with
sklearn
- Data analysis with
pandas
In this chapter we will go over some basic Python.
Using the Python interpreter
Open your command line and type:
python
This will start a prompt that looks something like:
Python 3.5.2 |Anaconda custom (64-bit)| (default, Jul 2 2016, 17:53:06)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
The >>>
indicates point at which you can type python code.
Type 2 + 2
and press enter. You can see what this looks like below:
>>> 2 + 2
4
Creating numeric variables
We can assign variables to values using the =
operator:
>>> the_meaning_of_life = 42
>>> the_meaning_of_life = the_meaning_of_life + 2
>>> the_meaning_of_life
44
Creating boolean variables
We can create boolean values using a number of comparison operators which include:
==
equals!=
not equals>
strictly greater>=
greater than or equal
>>> is_42 = the_meaning_of_life == 42
>>> is_42
False
>>> greater_than_42 = the_meaning_of_life > 42
>>> greater_than_42
True
Creating list variables
Python has an indexable structure called lists:
>>> numbers = [1, 2, 4, 5]
>>> max(numbers)
5
>>> min(numbers)
1
>>> sum(numbers)
12
>>> numbers[0]
1
>>> numbers[-2]
4
>>> numbers.append(50)
>>> numbers
[1, 2, 4, 5, 50]
To close the python interpreter type:
exit()
Using Python scripts
To start to write more sophisticated code (software) we can write code inside a file which we can then run using the command line.
Writing a python script
Open one of the recommended text editors and create a new file in the
rsd-workshop
(created in Chapter 01) save it as 01-hello-world.py
.
Inside the file write the following (ignore the >>>
):
print("hello world")
Running a python script
Using the command line, let us now "run" this file using the command line:
python 01-hello-world.py
You can in fact run various programming languages this way: saving them to a file in your editor of choice and running them with the correct command.
This allows for flexibility as you can choose an editor that has features you enjoy and customise it to work for you.
If statements
We can use boolean variables to create logical statements.
Write a file called 02-if-statements.py
, include the following code and run
it.
N = 572
if N % 2 == 0:
print("N is even")
else:
print("N is odd")
Note white space and indentation is important in python. The indented code
block indicate what code to execute if the boolean variable N % 2 == 0
is
True
.
While loops
It is possible to repeat code using while
loops which will repeatedly check a
boolean variable.
Write a file called 03-while-loops.py
, include the following code and run
it.
N = 0
even_number_count = 0
while N < 10:
if N % 2 == 0:
even_number_count = even_number_count + 1
N = N + 1
print(even_number_count)
Functions
It is possible to create functions in python which we will use later to write modular code.
Write a file called 04-functions.py
, include the following code and run it.
def count_even_numbers(upper_limit):
N = 0
even_number_count = 0
while N < upper_limit:
if N % 2 == 0:
even_number_count = even_number_count + 1
N = N + 1
return even_number_count
print(count_even_numbers(10))
print(count_even_numbers(42))
Tip
Explore your editor: both Atom and VS Code offer many plugins for Python. This is not just a luxury to make things easier but also helps avoid mistakes by letting the plugins check various things for you.
This is not just the case for these editors and Python. Most good editors have a full ecosystem of tools available to support the writing of code in many languages.
Optional
Write some code to compute and compare both sides of the following equation, for varying values of $N$.
$$ \sum_{i=1}^Ni=\frac{N(N+1)}{2} $$