Snelcursus Python

Als je ervaring hebt met andere programmeertalen zoals c/c++, Java of Javascript dan kan je ook snel aan de slag met Python. Het is echt niet nodig om alle ins en outs van deze taal te kennen. Als je de basis weet – variabelen, control structures, functies en classes – dan kan je al aan de slag met Python. Gaande weg leer je meer over de beschikbare bibliotheken (zoals numpy, pandas, matplotlib) en speciale taal constructies.

Uitgebreidde Engelstalige Python documentatie kan je vinden op https://www.python.org/doc/.

Als Python nog niet op je computer geïnstalleerd is dan kan je dit downloaden via https://www.python.org/downloads/.

Python is nog steeds in ontwikkeling. Nog niet zo lang geleden is er een grote update van de taal geweest van versie 2.x naar 3.x. Om compatibiliteitsproblemen te voorkomen kan je het beste de laatste versie gebruiken.

Variabelen declareren

In [1]:
a = 1
a
Out[1]:
1
In [2]:
b, c = 2, 3
b, c
Out[2]:
(2, 3)
In [3]:
# commentaar in python begint met een hekje
b = 2; c = 3
b, c
Out[3]:
(2, 3)
In [4]:
"""
Commentaar met meerdere regels kan je maken 
door drie (enkele of dubbele) aanhalingstekens te gebruiken.
"""
str = "Hallo iedereen!"
print(str)
Hallo iedereen!

Control structures

Control structures in een programmeertaal zijn statements die de flow van execute bepalen door bepaalde condities te testen. Het grootste verschil met andere programmeertalen is dat Python geen haakjes () of accolades {} gebruiken om een code block aan te geven. Python werkt met inspringen van code om een blok code aan te geven.

IF statement

In [5]:
a = 3
if a < 3:
    print("a is kleiner dan 3.")
elif a == 3:
    print("a is gelijk aan 3.")   
else:
    print("a is groter dan 3")
a is gelijk aan 3.

WHILE loop

In [6]:
a = 3
while a >= 0:
    print(a)
    a = a - 1
3
2
1
0

FOR loop

In tegenstelling tot programmeertalen zoals c en c++ itereert een Python FOR loop over de elementen van een lijst.

In [7]:
for a in [0, 1, 2]:
    print(a)
0
1
2

De Python functie range() wordt vaak gebruikt om een lijst te genereren.

In [8]:
for a in range(0, 3):
    print(a)
0
1
2

Je kan met een FOR loop itereren over een willekeurige lijst met objecten. Met het statement break kan je voortijdig een FOR loop afbreken.

In [9]:
for str in ['Amsterdam', 'Rotterdam', 'Eindhoven', 'Maastricht']:
    print(str)
    if str == 'Eindhoven':
        break
Amsterdam
Rotterdam
Eindhoven

Functies

In [10]:
def kwadraat(x):
    return x**2

kwadraat(3)
Out[10]:
9
In [11]:
def kwadraat2(x, y):
    """
    Een voorbeeld functie.
    
    Rekent kwadraat uit van twee getallen.
    
    PS. Meer-regelig commentaar in een functie of class
    wordt gezien als een docstring. Met help(kwadraat) 
    krijg je deze docstring te zien.
    """
    return x**2, y**2

a, b = kwadraat2(3, 4)
a, b
Out[11]:
(9, 16)
In [12]:
help(kwadraat2)
Help on function kwadraat2 in module __main__:

kwadraat2(x, y)
    Een voorbeeld functie.
    
    Rekent kwadraat uit van twee getallen.
    
    PS. Meer-regelig commentaar in een functie of class
    wordt gezien als een docstring. Met help(kwadraat) 
    krijg je deze docstring te zien.

De argumenten van een functie kunnen een standard waarde krijgen. Als het argument niet wordt meegegeven wanneer de functie wordt aangeroepen dan wordt de standard waarde gebruikt.

In [13]:
def myprint(tekst, prefix='myprint : '):
    print("{}{}".format(prefix, tekst))
    
myprint("Hallo iedereen!")
myprint : Hallo iedereen!
In [14]:
myprint("Hallo iedereen", prefix='')
Hallo iedereen

Classes

In [15]:
class Cirkel:
    """Een cirkel class."""
    
    def __init__(self, straal):
        self.straal = straal
        
    def omtrek(self):
        """Berekent de omtrek van de cirkel."""
        return 2 * 3.141 * self.straal
    
    def oppervlak(self):
        """Berekent het oppervlak van een cirkel."""
        return 3.14 * kwadraat(self.straal)
    
cirkel = Cirkel(5.0)
cirkel.omtrek()
Out[15]:
31.41
In [16]:
cirkel.oppervlak()
Out[16]:
78.5
In [17]:
help(Cirkel)
Help on class Cirkel in module __main__:

class Cirkel(builtins.object)
 |  Een cirkel class.
 |  
 |  Methods defined here:
 |  
 |  __init__(self, straal)
 |      Initialize self.  See help(type(self)) for accurate signature.
 |  
 |  omtrek(self)
 |      Berekent de omtrek van de cirkel.
 |  
 |  oppervlak(self)
 |      Berekent het oppervlak van een cirkel.
 |  
 |  ----------------------------------------------------------------------
 |  Data descriptors defined here:
 |  
 |  __dict__
 |      dictionary for instance variables (if defined)
 |  
 |  __weakref__
 |      list of weak references to the object (if defined)