Python
Algemeen
➢ ABC ontwikkeld in Amsterdam
➢ Bedoeld als educatieve programmeertaal (simpel, interactief, compact en
high-level)
➢ Beperkingen: geen communicatie mogelijk met randapparatuur, geen
grafische output, te simpel
➢ Een Nederlander heeft het verder ontwikkeld tot python. De eerste versie van
python kwam uit in 1991. De naam ‘python’ komt van de Engelse
komedieshow Monty Python
➢ Python is gebaseerd op ABC, Pascal en C (ABC zelf gebaseerd op Pascal en
BASIC). Python zelf heeft veel invloed gehad op Ruby. Er is dus een
stamboom van programmeertalen
➢ Het heeft veel nieuwe functionaliteit gekregen sinds 1991 (strings, Unicode
etc., en rekenen) en er zijn fundamentele design-keuzes gemaakt. Python 2
wordt niet meer verder ontwikkeld sinds 2020. Nu zitten we in Python 3, die
vanaf 2008 bestaat. 2.0 en 3.0 bestaan al 10 jaar naast elkaar, wat erg
onhandig is voor programmeurs
➢ De design-keuze van Python is leesbaarheid. Je hebt meer Engelse woorden
i.p.v. leestekens zoal in Java
➢ Python is gecompileerd, maar dit is niet zichtbaar voor de gebruiker. Dus:
Python is leesbare code en het is eenvoudig om te gebruiken.
❖ Er zijn 2 verschillende manieren van programmeren:
o Declaratief: Je beschrijft het op te lossen probleem en laat Python
ermee aan de slag gaan.
Het is verdeeld in logisch programmeren en functioneel programmeren.
▪ Functioneel programmeren beschouwt een programma als een
verzameling wiskundige functies die bij een bepaalde input altijd
dezelfde output geven voor die input. Het is handig voor het
controleren of een programma correct is.
▪ Logisch programmeren beschouwt een programma als een
verzameling feiten en regels. Je kunt het programma een vraag
stellen en de computer berekent automatisch het antwoord. De
focus ligt op wat, niet hoe.
o Imperatief programmeren: Je verteld Python stap voor stap wat het
programma moet doen, maar je zegt niet hoé (imperatief
programmeren is vaak veel code schrijven).
Python is vooral imperatief maar kan ook declaratief gebruikt worden.
, ❖ Hoe werkt Python?
o High-level code (python code) → low-level code (computer/processor
code) → binaire code → stroom voor de processor → voltage → binaire
code → low-level code
o Vertaling van high-level code naar low-level code gebeurt met een
grammatica, die de code analyseert
o Een processor bestaat uit transistoren die van halfgeleiders zijn
gemaakt en die zijn op 3 punten aangesloten (het 3e punt bepaald de
verbinding tussen de andere 2 punten). De 3 punten geven een 0 of
een 1 door naar aanleiding van de stroompjes die ze erin ontvangen.
Basis python-syntax
• Variabelen = namen voor bepaalde data in de code. De waarde kan
veranderen [var = waarde // VB’s: a = 3, boot = “enzoknol”, huts = [1,2,3]].
o Technisch gezien maakt Python een verwijzing aan die naar
een/meerdere geheugenadressen verwijst
▪ Een declaratie of datatype hoef je niet bij de variabele te
schrijven
▪ Niet elke variabele-naam mag/kan in Python. Je mag letters,
cijfers en leestekens gebruiken, alleen mogen cijfers niet aan het
begin staan. Je mag trouwens letters en accenten uit een ander
alfabet gebruiken
▪ Variabelen zijn hoofdlettergevoelig, dus ‘Aantal’ is anders dan
‘aantal’
▪ Je mag geen keywoorden als if/or/and/import gebruiken in de
variabele-naam
De volgorde van de regels in je programmacode maakt uit.
a=4 a=4 a=3 print(b)
a=3 a=3 a=4 b=3
print(a) print(a) print(a) b=4
antwoord: 3 antwoord: 4 antwoord: error (kent geen b, want
vóór de print statement is er geen
waarde aan b toegekend)
Variabelen in Python hebben een datatype. Hieronder een aantal datatypes:
➢ Een str(ing) (reeks tekst tussen aanhalingstekens)
➢ Int(eger): een geheel nummer
➢ Float: kommagetal
➢ Bool(ean) (waar of niet waar)
➢ List (getallen of cijfers (als ze maar tussen aanhalingstekens staan) tussen 2
blokhaken
, Je hoeft de datatypes niet erbij te zetten in Python, wat het makkelijker maakt. Echter
kunnen ze soms wel belangrijk zijn. Als je de waarden van variabelen wilt delen door
elkaar, moet je ervoor zorgen dat de waarden van beide variabelen integer zijn. Voor
het berekenen van de lengte van de waarde, moet de waarde een string zijn. Voor
een waarheidswaarde moet de waarde een boolean zijn.
▪ Als je een operator gebruikt (+), krijg je 1+2 = 3 als 1 en 2 integers zijn, en
‘1’+’2’ = 12 als 1 en 2 strings zijn.
Elk datatype wordt anders opgeslagen in het geheugen. Een integer wordt
opgeslagen in 32 bits, een string in 32 bits per letter en boolean in 1 bit. Het enige
nadeel hiervan is dat Python een groot aantal bits beschikbaar stelt voor waarden die
soms veel minder bits nodig hebben, wat geheugenruimte kost.
Soms moet je het ene type in het andere type omzetten (type-conversie). Je kan
“lokaal” + 23 niet invoeren, omdat ze beide verschillende datatypes hebben. Je moet
eerst van 23 ook een string maken. Als je str(23) doet, wordt er van 23 een string
gemaakt. Als je int(a) doet, wordt er van a een integer gemaakt, als je float(b) doet
wordt er van b een float gemaakt en bool(c) een boolean. Je vraag het type van een
waarde op met type(…).
Operatoren:
Een string kun je omzetten in een integer of float
door int() of float() te gebruiken, maar dat kan
alleen als de string puur uit numerieke waarden
bestaat, en er dus geen letters of leestekens in
voorkomen.
1e prioriteit: **
2e prioriteit: *, /, //, %
3e prioriteit : + -
‘a += 2’ is de kortere notatie van ‘a = a +
2’
1 bit wordt gebruikt om aan te geven of een getal positief of negatief is
Kommagetal: je hebt voor en na de komma een geheel getal, die samen een
kommagetal vormen. Het deel voor de komma wordt evenveel
geheugenruimte toegewezen als het deel achter de komma, ook al wordt het
deel achter de komma veel minder gebruikt. Dat is een nadeel.
Oplossing: geen fixed point, maar floating point. Je verschuift de grens
tussen het integer-deel (voor de komma) en het decimale deel (achter de
komma). Als je meer bits nodig hebt voor het integer deel, dan schuif je de
komma op.
Integers en floats kun je
Als je een integer getal en een float getal bij elkaar optelt, deelt of
combineren, maar strings en
vermenigvuldigt, dan wordt het datatype van de uitkomst een float. integers of strings en floats niet.
Als je floats/kommagetallen bij elkaar
optelt, dan zijn die getallen vaak
afgerond (dus als je 0,2 typt, is dat in
feite waarschijnlijk 0,20003 ofzo). Dus:
Python geeft ‘false’ als je typt ‘0.1 + 0.2
== 0.3’.