Overzicht¶
Datatypes¶
integer: -34, 12, 10392
float: 55.38, -34.33
string: “konijn”, ‘haas’, “””olifant”””, ‘’’kip’’’
boolean: True, False
Met de driedubbele enkele of dubbel aanhalingstekens, kan je een string met meerdere regels ingeven:
'''Beste
U bent de gelukkige winnaar!
Proficiat!
'''
Berekeningen met gehele getallen¶
Optellen, aftrekken en vermenigvuldigen met gehele getallen werkt zoals verwacht:
3 + 9 # 12
28 + 12 + 14 # 54
3 * 201 # 603
De deling geeft een float als resultaat:
8 / 2 # 4.0
Er is ook een tweede operator voor de deling die een integer als resultaat geeft:
8 // 2 # 4
9 // 2 # 4
10 // 2 # 5
11 // 2 # 5
Deze operator rondt niet af:
20 / 3 # 6.666666666667
20 // 3 # 6 afgerond zou dit 7 moeten zijn...
Verder is er nog de machtsverheffing:
2**3 # 2 tot de derde macht, dus 2 * 2 * 2 == 8
En de module operator:
9 % 2 # 1, rest bij deling door 2 is 1
9 % 3 # 0, rest bij deling door 3 is 0
9 % 5 # 4, rest bij deling door 5 is 4
Berekeningen met floats¶
Optellen, aftrekken en vermenigvuldigen met gehele getallen werkt grotendeels zoals verwacht:
3.0 + 9.0 # 12.0
28. + 12. + 14. # 54.0
3 * 201.0 # 603.0
Deling:
8.0 / 2 # 4.0
9.0 // 2 # 4.0
9 // 2.0 # 4.0
9.0 // 2.0 # 4.0
Machtsverheffing:
2.0**3.0 # 8.0
2**3.0 # 8.0
2.0**3 # 8.0
Vierkantswortel via machtsverheffing:
4.0**0.5
Concatenatie¶
Een aantal operatoren zoals de optelling en vermenigvuldiging werken ook op strings. Zo kan je via de plusoperator strings samenvoegen:
"mijn " + "naam " + "is " + "Zarah."
resultaat:
"mijn naam is Zarah."
De vermenigvuldiging gebruikt met een string geeft volgend resultaat:
3 * "hoi " # "hoi hoi hoi "
De logica hierachter is:
3 * 4 == 4 + 4 + 4 == 12
En dus ook voor strings:
3 * "hoi " == "hoi " + "hoi " + "hoi " == "hoi hoi hoi "
Toekenning (assignment)¶
Met de toekenningsoperator kan je een waarde “opslaan” in een variabele.
Voorbeelden:
lengte = 183.5
leeftijd = 23
naam = "Alexander"
straat = ‘Rijksweg'
adres = '''Hoogbaan 7
3650 Dilsen-Stokkem
Limburg'''
Functies¶
Functies zijn een manier om code te groeperen voor hergebruik. Een standaardinstallatie van Python bevat reeds een heel pak functies voor allerhande doeleinden. Dit om te vermijden dat iedere programmeur telkens opnieuw dezelfde functies zou moeten schrijven. Dit bespaart tijd voor iedereen, en hierdoor kunnen fouten vermeden worden.
Een aantal van die standaardfuncties zijn: print, input, str, int, float.
Print()¶
Toon iets op het scherm:
print("een naam")
print(39)
print('''Meerdere
regels
''')
Input()¶
Vraag de gebruiker om invoer:
input("Geef je naam in:")
Hoewel de naam hier wordt gevraagd, wordt het resulaat nergens opgeslagen.
De functie input geeft de invoer als resultaat terug, je kan dit opslaan in een variabele met behulp van de toekenningsoperator:
naam = input("Geef je naam in:")
Opgelet: Het resultaat is een string:
leeftijd = int(input("Geef je leeftijd in:"))
Opgelet: De volgorder van uitvoering van de functies is belangrijk! Eerst wordt de input() functie uitgevoerd, het resultaat hiervan wordt aan de int() functie doorgegeven:
resultaat = nadien(eerst("de parameter"))
Int()¶
Zet (indien mogelijk) een waarde om naar een geheel getal:
getal = int("301") # getal is nu 301
getal = int(200) # getal is nu 200
getal = int(8.3) # getal is nu 8
getal = int(8.99) # getal is nu 8
getal == int("banaan") # error: invalid literal
Str()¶
Zet een ander datatype (zoals een getal) om naar een string:
tekst = str(202) # tekst is nu "202"
tekst = str(10.3) # tekst is nu "10.3"
tekst = str(True) # tekst is nu "True"
tekst = str("kip") # tekst is nu "kip"
tekst = str(2**3) # tekst is nu "8"
Dit kan je gebruiken om integers te concateneren met strings:
tekst = "Ik eet " + str(3) + " maal per dag."
Eigen functies¶
Je kan ook eigen functies aanmaken met behulp van het keyword “def”:
def hoi():
print("hoi")
Gebruik (oproep) van een functie:
hoi() # toont "hoi"
Je kan een parameter aan je functies meegeven door deze aan te geven tussen de haakjes:
def kwadraat(x):
print("het kwadraat van " + str(x) + " is " + str(x * x))
Gebruik (oproep) van deze functie:
# kwadraat(4)
# het kwadraat van 4 is 16
Je kan ook meerdere parameters aan je functies meegeven door deze door komma’s te scheiden:
def som(x, y):
print("de som van " + str(x) + " en " + str(y) + " is " + str(x + y))
# som(3, 4)
# de som van 3 en 4 is 7
Je functie kan ook een resultaat teruggeven:
def kwadraat(x):
return x*x
# v = kwadraat(5)
# print(v)
# 25
Formatted string (f-string)¶
Een handigere manier om tekst te maken gecombineerd met waardes van variabelen is via de f-string. Je schrijft de tekst tussen aanhalingstekens zoals bij een gewone string, maar variabelen kan je in de string gebruiken, als je ze tussen accolades plaatst.
Voorbeeld:
leeftijd = 6
naam = "Andreas"
print(f"Mijn naam is {naam} en ik ben {leeftijd} jaar.")
game = "Cyberpunk 2077"
prijs = 55.99
tekst = f'De pre-order prijs voor {game} bedraagt {prijs} euro.'
De “f” geeft aan dat het een f-string is. Met de accolades geef je expressies door, die door Python uitgevoerd, omgezet naar een string en ingevuld worden. Dus, binnen de accolades mag je in een f-string ook optellingen, delingen, etc. uitvoeren:
print(f'De som van {3} en {4} is {3 + 4}.')
Lijsten¶
Groeperen van data:
temperaturen = [14, 15, 13.5, 17, 18, 21, 23]
namen = ["Alexander", "Zarah", "Andreas"]
De lege lijst:
games = []
Via indexatie kunnen we elementen van een lijst benaderen. Het eerste element heeft index 0:
print(name[0]) # toont "Alexander"
Het laatste element kan ook benaderd worden via index -1:
print(name[-1]) # toont "Andreas"
Zo kan het voorlaatste element via -2 benaderd worden, enzovoort.
Lijsten kunnen ook andere lijsten bevatten, zo kunnen complexere datastructuren gemaakt worden:
klanten = [
["Jan", "Janssens", "Hoogbaan 12", "Belgie"],
["Piet", "Peters", "Dorpsstraat 4", "Belgie"],
]
For-loop¶
Een for-loop dient voor het herhaaldelijk uitvoeren van een blok code. De code wordt zo vaak uitgevoerd als het aantal elementen in de opgegeven lijst:
for i in [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]:
print(f"Hallo {i}")
Met behulp van range() kunnen we makkelijk zulke lijsten aanmaken:
for i in range(10):
print(f"Hallo {i}")
Range laat ook toe om de startwaarde aan te passen:
range(4) # 0, 1, 2, 3
range(1, 4) # 1, 2, 3
Verder kan ook de stapwaarde gewijzigd worden:
range(1, 4, 2) # 1, 3
Met behulp van het break-statement kunnen we een for-loop vroegtijdig onderbreken:
for i in range(10):
print(f"Hallo {i}")
if i == 5:
break # hier verlaten we de for-loop als i de waarde 5 bereikt
Met behulp van de else-clause voor de for-loop kunnen we een actie uitvoeren in het geval er geen break uitgevoerd werd:
lijst_getallen = []
for i in lijst_getallen:
if i == 666:
print("666 gevonden <:-O")
break # hier verlaten we de for-loop als i de waarde 666 bereikt
else:
print("oef, ... er werd geen 666 gevonden (geen break uitgevoerd)")
If-conditie¶
Voorwaardelijk (conditioneel) uitvoeren van code:
if leeftijd >= 18:
print("volwassen")
Je kan ook code voorzien die enkel uitgevoerd wordt als de voorwaarde niet klopt:
if leeftijd >= 18:
print("volwassen")
else:
print("niet volwassen")
Je kan ook meerdere vergelijkingen uitvoeren:
if leeftijd < 10:
print("kind")
elif leeftijd < 18:
print("niet volwassen")
else:
print("volwassen")
While-loop¶
Herhalen van code zolang voorwaarde geldt:
leeftijd = 1
while leeftijd < 18:
print("niet volwassen")
leeftijd = leeftijd + 1
print("volwassen")
Ook in een while-loop kunnen we het break-statement gebruiken om de herhaling vroegtijdig te onderbreken.
Classes¶
Groeperen van data en code:
class Rapport:
def __init__(self):
self.punten = []
def voeg_score_toe(self, resultaat):
self.punten.append(resultaat)
def gemiddelde(self):
return sum(self.punten)/self.punten.length
Gebruik van een class:
r = Rapport()
r.voeg_score_toe(7)
r.voeg_score_toe(9)
r.voeg_score_toe(8)
gemiddelde = r.gemiddelde()
print(f"Mijn gemiddelde is: {gemiddelde}")
Modules¶
Via het import statement kunnen modules geimporteerd worden (klaargemaakt voor gebruik):
import math
print(math.pi) # 3.141592...
Python voorziet vele modules in de `standaard bibliotheek https://docs.python.org/3/library/index.html`_.