This tutorial assumes that you already have some basic knowledge of the Python programming language (or some other programming language). It is meant to be concise, with the main goal of reviewing both basic concepts and more advanced notions we may use in this course. It is not meant to be a complete document. Python is such a rich programming language that this would be a futile exercice.
It is likely that, for some of you, a lot of this material can be skipped. At a minimum, this will serve as a quick review.
Some of the simple codes are available to download so you run with them on your machine. You can also cut and paste them. Of course, your first action is to install Python 3 (do not install Python 2) on your computer, if you have not done so. You should absolutely install an IDE for python like
Jupyter. There are many good IDEs for Python, with such features as syntax highlighting and integrated debugging.
You can get help within the Python interpreter.
For instance, you would like to know the syntax of a particular object: just type
As an example, if want some information about the
quad function of the
integrate submodule in the
scipy module, type
from scipy.integrate import quad help(quad)
you will get a description of the function, its parameters, the output it returns, and some simple examples of its use.
Python is a great language for scientific computing. The best way to learn Python is to use it with the goal of solving scientific/engineering problems.
Each programming language has its specific syntax. Here are a few key features of Python:
ifstatements) are specified by indentation. You have to start indentation to begin a block, and stop the indentation to end a block.
#and stand on a single-line. Multiline strings are used for multiline comments.
-=operators. This works on many datatypes, including strings. You can use multiple variables on one line.
x = 3 x += 2 print(x) x -= 1 print(x) """This is a multiline comment. Here we show how to concatenate two strings.""" string1 = "Hello" string1 += " class!" print(string1) # Here is a way to swap two variables in one shot. x, string1 = string1, x print(x)
As the previous example shows, to create a variable, you simply have to assign it
a value. Variables in
Python are implicitly declared by defining them, i.e. the first time you assign a value to a variable, this variable is declared and has automatically the data type of the object which has been assigned to it, such as an integer, a float, or a string.
It is not necessary to declare the type of variable.
For example, try this:
x = 1 print(x) print (type(x))
On output, you will get
<class 'int'>. Try now to change
x = 1 to
x = 1.0 (a float) or to
x = "hello!" (a string).
It is possible to ask the user of your code to input to be assigned to a variable. A variable obtained by the
input() instruction is a string variable. To convert it to an integer, you must use the function
x = input('Enter x = ') # this asks for a number which will be assigned to variable x print (x) print (type(x)) # <class 'str'> y = int(x) # convert x of type 'str' into type 'int' print (y) print (type(y)) # <class 'int'>
A string is an array filled with characters. Strings can thus be manipulated like arrays.
The numbering of the characters of a string starts at
0. Let’s try this:
name='Gabriel' print(name) print(name[2:6]) # extract the characters 2 (included) to 6 (excluded)
It is possible to add string
print ('Scientific' + ' Programming')
The length of a string is obtained with the function
len(). There exists many functions to manipulate strings. See this Pyformat Guide.
A variable can be converted from one type to another:
x = float(1) # a real number from an integer print (type(x)) # <type 'float'> y = float('1.0') # a real number from a string print (type(y)) # <type 'float'>
Try the operations of division
/, floor division
//, and power on numerical types:
print (7/2, 7//2, 3**2)
gives:$\qquad$ 3.5 3 9
The modulo operation
n%q gives the floor division of
print (4%3, -1%3) # 4 modulo 3, (-1) modulo 3
gives: $\qquad$ 1 2
print (7.5%3.0, -2.5%3.0) # 7.5 modulo 3.0, (-2.5) modulo 3.0
gives: $\qquad$ 1.5 0.5
To compute a square root or other basic math function, you have to load the
math module of
There are two ways to proceed. If you use
import math, then you have to precede your function with
math.sin(math.pi/2.0). The practice of using
from math import * (which attempts to import everything from the particular module) is not encouraged and even disallowed in some IDE (like
Spyder), mainly due to the risk of conflicts.
You should explicitly import a few objects only, for instance
from math import pi math.sin(pi/3.0)
However, if you type
import math x = sin(pi/3.0) print(x)
your IDE may complain, but may still give you the right answer. It is safer to type
import math x = math.sin(math.pi/3.0) print(x)
If you want a description of all functions available in the
math module, type
help(), then at the help prompt, type
If you want a random number betwen 0 and 1, import the
import random x = random.random() print (x)
For a random integer from 1 to 6 (6 included)
import random x = random.randint(1, 6) print (x)
Data sets can be regrouped in lists. Lists can be built with different types of objects. They are very useful for iterations over the objects of a list.
my_list = [1, 13, 'plot'] print (my_list) print(my_list,my_list) print(type(my_list)) print(type(my_list))
Many operations are possible with lists. For instance, it is possible to modify a list by assigning new values:
my_list = [11, 25, 33, 76, 88] my_list = 12 print(my_list) my_list.append(101) # this appends a new value at the end of the list print(my_list) my_list.insert(2,6) # this inserts a new element at index 2 print(my_list) del my_list # this deletes element of index 1 print(my_list) x = my_list.pop(4) # delete element of index 4 and pass it to variable x print(my_list,x)
You can obtain the length of a list (the number of objects) with the function
len(). It is also
possible to concatenate lists with the
list1 = ['a','Go',13,21] list2 = [0,'ld',1] list3 = list1 + list2; print (list3)
To create ordered list of integers, use
range(m,n) for a list from
n (included) to
range(n) for a list from
If you want a complete description of operations on lists, use