ID.nl logo
Zo kun je programmeren in Python - Deel 1
© Reshift Digital
Zekerheid & gemak

Zo kun je programmeren in Python - Deel 1

Vanaf nu vind je op Computer!Totaal een meerdelige cursus over een van de meestgebruikte programmeertalen ter wereld: Python. Python heeft een heldere structuur die redelijk snel te leren is en heeft veel mogelijkheden. Niet voor niets wordt het op allerlei plekken ingezet, bijvoorbeeld als scripttaal voor het automatisch uitvoeren van taken op een besturingssysteem, het programmeren van een Raspberry Pi en ook werken veel websites ermee.

In dit eerste deel over Python maak je kennis met deze populaire programmeertaal en leg je een stevige basis voor het schrijven hierin. Daarna installeren we Python en leggen we uit hoe je met de interpreter werkt. We zetten ook onze eerste kleine programmeerstapjes door je te laten kennismaken met getallen en tekst.

Python

Programmeren is niets anders dan aan een computer instructies geven die hij moet uitvoeren. Een computer is geen mens, wat maakt dat hij heel expliciete instructies nodig heeft. Die geef je daarom in een programmeertaal: een formeel gedefinieerde taal die alles duidelijk uitspreekt, zodat de computer je goed verstaat.

Net zoals er heel wat talen bestaan in de wereld van de mensen, bestaan er ook enorm veel programmeertalen. Een populaire programmeertaal voor algemeen gebruik is Python, overigens uitgevonden door een Nederlander, Guido van Rossum. De Python-gemeenschap besteedt veel aandacht aan leesbaarheid van de code. De programmeertaal staat al sinds 2003 jaarlijks in de top 10 van de meest populaire programmeertalen van Tiobe. Veel grote bedrijven gebruiken Python en ook heel wat software voor de Raspberry Pi is in Python geschreven. Kortom, als je Python kent, is je programmeerkennis op allerlei domeinen nuttig.

Python 2 en 3

Als we het over Python hebben, bedoelen we Python 3, de nieuwste versie van Python. Versie 3.0 kwam al in 2008 uit en momenteel zijn we al bij Python 3.7. Je ziet ook nog veel Python 2-code, hoewel Python 2 door de ontwikkelaars van Python vanaf 2020 niet meer wordt ondersteund. Voor onze reeks maakt het niet zo veel uit, maar als je je bezig gaat houden met wat geavanceerdere zaken, kom je zeker Python 2-code tegen die niet in Python 3 werkt en andersom.

Python installeren

Python is opensource en draait zowel op Windows als op macOS en Linux. Je kunt de programmeeromgeving gratis downloaden. Download de nieuwste Python3-release voor je besturingssysteem. Op het moment van schrijven is dat Python 3.7.1. Gebruik je Linux, dan is Python in principe standaard al geïnstalleerd. Is dat toch niet het geval, installeer Python 3 dan met de pakketbeheerder van je Linux-distributie. Mogelijk installeert dat niet de recentste versie, maar dat maakt voor onze reeks niet uit.

In Windows kies je de executable installer voor 64 bit of 32 bit, afhankelijk van je Windows-versie. Vink in het eerste venster van het installatieprogramma Install launcher for all users en Add Python to PATH aan. Na de installatie kun je controleren of Python correct geïnstalleerd is met de volgende opdrachtregel in een Opdrachtprompt:

python --version

Je ziet dan het versienummer van je Python-installatie.

Werken met de Python-interpreter

Het programma python dat we hierboven hebben uitgevoerd, is de Python-interpreter. Dit programma vertaalt code in de Python-programmeertaal naar machinecode die je computer verstaat. Als je die Python-interpreter uitvoert, krijg je iets als het volgende te zien (het versienummer en de datum kunnen bij jou verschillen):

Python 3.6.5 (default, Apr[GCC 7.3.0] on linuxType "help", "copyright", "credits" or "license" for more information.>>>

De drie groter dan-tekens is de opdrachtprompt die aangeeft dat de Python-interpreter op je opdrachten wacht. Je krijgt onmiddellijk al te zien wat enkele mogelijke opdrachten zijn.

Wat je niet te zien krijgt, is hoe je de Python-interpreter weer verlaat. Daarvoor typ je exit() of quit() of druk je op Ctrl+D.

Cursus Python

Wil je dieper in de mogelijkheden van Python duiken, dan bieden wij een uitgebreide Tech Academy cursus aan.

Werken in een Python-ontwikkelomgeving

De Python-interpreter is voldoende om kort enkele Python-opdrachtjes uit te proberen, maar om een volwaardig Python-programma te schrijven, heb je een ontwikkelomgeving nodig. Er bestaan diverse ontwikkelomgevingen voor Python, maar als beginner kun je volstaan met Thonny, dat standaard wordt geïnstalleerd bij Python vanaf versie 3.7. Pas in het derde deel gaan we op Thonny in.

Python als een rekenmachine

Open opnieuw de Python-interpreter. We gaan nu met getallen werken. In feite kun je de Python-interpreter als een geavanceerde rekenmachine gebruiken:

>>> 1+12>>> 1.5*34.5>>> (212-32)*5/9100.0>>> 20*1.8+3268.0>>> 3**481

De laatste berekening is misschien niet vertrouwd als notatie: de operator ** berekent de macht van een getal. 3**4 is dus 3 tot de 4e macht.

Na elke opdracht toont Python zijn uitvoer en kun je een nieuwe opdracht invoeren. Met de pijltjestoetsen kun je door je al ingevoerde opdrachten bladeren om dezelfde opdracht opnieuw in te voeren of aan te passen.

Python kent twee types getallen: int (gehele getallen) en float (getallen met komma, door Python weergegeven als een decimale punt). Als je alleen met gehele getallen rekent en geen deling uitvoert, is het resultaat ook een geheel getal. Maar zodra er een float in je berekening voorkomt (zoals in 20*1.8+32) of je door een getal deelt (zelfs door een int, zie (212-32)*5/9), is het resultaat een float. Dat zie je doordat Python een decimale punt gebruikt, zelfs als het resultaat een geheel getal is (100.0).

Delen

We zagen dat je getallen deelt met de operator /. Dat geeft als resultaat altijd een float:

>>> 7/32.3333333333333335

Maar je hebt ook de operator // waarmee je een gehele deling uitvoert. Dat wil zeggen dat het deel na de komma wordt genegeerd en je als resultaat een int krijgt:

>>> 7//32

Je kunt ook de rest van de deling door een getal opvragen, namelijk met de operator %:

>>> 7%31

En dat klopt, want als we de twee vorige berekeningen samennemen, kunnen we eenvoudig narekenen dat 7 gelijk is aan 3*2+1.

Overigens werken de operatoren // en % ook voor niet-gehele getallen:

>>> 7.5/2.13.571428571428571>>> 7.5//2.13.0>>> 7.5%2.11.1999999999999997

Types

Je hebt nu kennisgemaakt met de twee typen getallen: int en float. Het type van een getal of een berekening kun je eenvoudig opvragen:

>>> type(1+1)<class 'int'>>>> type(7.5)<class 'float'>>>> type(7.5//2.1)<class 'float'>>>> type(7//3)<class 'int'>

Merk op: het resultaat van 7.5//2.1 is 3.0, wat een float is.

Je kunt getallen ook omzetten van het ene naar het andere type:

>>> float(1+1)2.0

>>> int(2.5)2

Als je een int naar float omzet, dan blijft de waarde van het getal hetzelfde; zet je een float naar int om, dan wordt de waarde na de komma afgebroken.

Variabelen

Als je de Python-interpreter als rekenmachine gebruikt, wil je misschien de vorige waarde als onderdeel van een volgende berekening gebruiken zonder dat je die helemaal opnieuw hoeft in te typen. Dat kan eenvoudig met de variabele _:

>>> 7/32.3333333333333335>>> _*511.666666666666668

Een variabele is een naam die je aan een waarde geeft. De Python-interpreter kent automatisch de laatste waarde toe aan de variabele _. Maar je kunt ook zelf variabelen aanmaken met een willekeurige naam, zolang het niet dezelfde naam is als een geregistreerd woord uit de Python-taal. Vervolgens kun je die variabelen gewoon in de plaats van de getallen die ze voorstellen gebruiken:

>>> teller=7>>> noemer=3>>> resultaat=teller//noemer>>> rest=teller%noemer>>> teller7>>> noemer3>>> resultaat2>>> rest1>>> type(rest)<class 'int'>

Verwijs je naar een variabele waar je nog geen waarde aan hebt toegekend, bijvoorbeeld door een typfout, dan krijg je een foutmelding:

>>> type(deltal)Traceback (most recent call last):File "<stdin>", line 1, in <module>NameError: name 'deltal' is not defined

Tekst

Python kent naast int en float nog heel wat andere ingebouwde types. Een veelgebruikt datatype is str, dat we vaak voluit string noemen. Een string stelt tekst voor, bijvoorbeeld 'Dit is een tekst'. Een string mag je zowel tussen dubbele als enkele aanhalingstekens zetten. Goed gebruik is wel om voor jezelf altijd één keuze te maken.

Omdat de aanhalingstekens worden gebruikt om het begin en einde van een string aan te geven, moet je iets speciaals doen als je ze in je tekst zelf wilt gebruiken: je dient ze te ‘escapen’. Dat doe je door er een backslash voor te zetten. Bijvoorbeeld: 'Dit is een \'tekst\''.

Net zoals we bewerkingen op getallen kunnen uitvoeren, kan dat ook op tekst. Enkele voorbeelden maken dit duidelijk:

>>> 'Py' 'thon''Python'>>> 'Py'+'thon''Python'>>> 3*'Py'+2*'thon''PyPyPythonthon'

Daarnaast kun je allerlei functies op een string toepassen:

>>> len('zandzeepsodamineraalwatersteenstralen')
37>>> 'dit is een TEKST'.capitalize()'Dit is een tekst'>>> 'dit is een TEKST'.lower()'dit is een tekst'>>> 'dit is een TEKST'.upper()'DIT IS EEN TEKST'>>> 'dit is een TEKST'.swapcase()'DIT IS EEN tekst'

In het tweede deel, leer je hoe je met individuele letters in een tekst om kunt gaan.

Opdracht

Maak een variabele teller met de waarde 24.3 en een variabele noemer met de waarde 8.1. Maak een variabele resultaat met als waarde teller gedeeld door noemer en zorg ervoor dat dit als geheel getal (dus niet als float) wordt weergegeven.

Uitwerking

>>> teller=24.3*>>> noemer=8.1**>>> resultaat=int(teller/noemer)**>>> resultaat* De eerste twee regels spreken hopelijk voor zich. In de derde regel delen we de teller door de noemer en wijzen de uitkomst toe aan resultaat. Zouden we het hierbij laten, dan zou de uitkomst weergegeven worden als 3.0. Door het type int toe te wijzen aan resultaat, wordt de uitkomst als geheel getal weergegeven, in dit geval dus 3.

Samenvatting

In deze eerste les heb je kennisgemaakt met de programmeertaal Python. Je kunt met de Python-interpreter werken en je hebt kennisgemaakt met basisbewerkingen op getallen en strings. Je weet ook wat datatypes en variabelen zijn. In de deel 2 gaan we met complexere datatypes aan de slag.

Cheatsheet

int (integer) = geheel getal float (floating-point arithmetic) = breuk of kommagetal str (string) = tekenreeks operator = bewerking

▼ Volgende artikel
Column: De PlayStation 6 mag nog jaren op zich laten wachten
Huis

Column: De PlayStation 6 mag nog jaren op zich laten wachten

De PlayStation 6 zou wel eens pas ergens na 2028 uit kunnen komen, zo claimde een analist onlangs. Dat betekent dat we minstens acht jaar met de PlayStation 5 opgescheept zitten. Maar niet getreurd: dat is juist goed nieuws voor de gemiddelde gameliefhebber.

Dat de PlayStation 6 in ontwikkeling is bij Sony, mag voor zich spreken. Nadat een nieuwe spelcomputer is uitgekomen, beginnen consolebedrijven vaak al snel met de research voor diens opvolger. Onderzoek naar de juiste specificaties en features van consoles beslaat vaak meerdere jaren, om nog maar te zwijgen over het maken van afspraken met bedrijven die de componenten daadwerkelijk leveren, en natuurlijk het produceren ervan.

Het is dan ook waarschijnlijk dat de specificaties van de PlayStation 6 al geruime tijd vastliggen, en dat Sony intern ook een schatting heeft gemaakt voor een releaseperiode voor de langverwachte console. Misschien was het bedrijf er zelfs van overtuigd dat het de console volgend jaar uit zou kunnen brengen.

Watch on YouTube

Verlengde levenscyclus

Onlangs meldde MST Financial-analist David Gibson dat Sony nu echter overweegt om de PS6 pas ergens na 2028 te leveren. “Sony verwacht dat de levenscyclus van de PlayStation 5 wordt verlengd, en dat de PlayStation 6-release langer op zich laat wachten dan de meesten voorspellen.” Dat zou betekenen dat de PS6 misschien pas ergens in 2029 of zelfs later in de winkels ligt.

De eerdere voorspellingen van ingewijden mikten voorheen vooral op eind 2027 of in de loop van 2028, op basis van wanneer de productie oorspronkelijk zou beginnen. De PlayStation 5 kwam in het najaar van 2020 uit, dus dat zou de console al een levenscyclus van ruim zeven jaar geven voordat de opvolger op de markt komt. Dat is in principe een zeer ruime levensloop voor een spelcomputer, en een release in 2027 of 2028 zou dan ook volkomen logisch zijn.

©PXimport

Stijgende RAM-prijzen

Maar de wereld houdt geen rekening met consolereleases, en gezien de huidige ontwikkelingen is de komst van een PlayStation 6 in 2027 of 2028 helemaal niet zo logisch meer. Dat heeft voor een groot deel te maken met de prijzen van RAM (Random Access Memory), die steeds hoger oplopen. RAM is namelijk in grote getale nodig om de alsmaar populairder wordende AI-assistenten als ChatGPT en Gemini draaiende te houden.

Als gevolg daarvan wordt RAM steeds schaarser en dus duurder, en laten spelcomputers nu ook net RAM nodig hebben. In deze periode een nieuwe spelcomputer uitbrengen zou dan ook betekenen dat de prijs van de console mogelijk erg hoog komt te liggen, wat de verkoop niet bepaalt stimuleert. Een dergelijke ‘valse’ start van de levenscyclus van een spelcomputer is iets dat veel bedrijven willen vermijden.

Ook de importheffingen die de Amerikaanse president Donald Trump op producten die buiten de Verenigde Staten worden gemaakt doorvoert, zorgen voor veel onzekerheid. Eerder moesten de prijzen van diverse spelcomputers, waaronder de PlayStation 5, al stijgen om dit op te vangen. Trump is – unieke politieke ontwikkelingen buiten beschouwing gelaten – de komende jaren nog aan de macht, dus ook dat maakt het uitbrengen van een nieuwe console bepaald geen veilige onderneming. De komende jaren een console lanceren is kortom dus een gigantisch risico, dat Sony volgensgeruchten zo klein mogelijk wil houden.

Trage consolegeneratie

Sony hoopt wellicht dat de economie eind dit decennium kalmeert. Dat zou echter wel betekenen dat we nog meerdere jaren op de komst van de PlayStation 6 moeten wachten. Wat mij betreft is dat niet iets om over te treuren, maar juist goed nieuws. Het geeft ontwikkelaars namelijk de kans om echt alles uit de PlayStation 5 te halen. Een kans die ze hopelijk met beide handen aangrijpen.

Hoewel de PS5 in november van 2020 uitkwam – ruim vijf jaar geleden – heb ik nog altijd het gevoel dat deze consolegeneratie nog maar net is begonnen. De generatie kwam sowieso vrij traag op gang, omdat deze middenin de coronapandemie viel. Dat was ook voor spelontwikkelaars een ingewikkelde tijd waarin halsoverkop naar thuiswerkmogelijkheden gekeken moest worden, waardoor veel games die in ontwikkeling waren vertraging op liepen.

Sony’s eigen game-line-up is de afgelopen vijf jaar ook wat karig geweest. Dat heeft deels te maken met een focus op liveservicegames, waarbij diverse projecten die bij Sony’s meest prominente studio’s in ontwikkeling waren uiteindelijk werden geannuleerd. Denk bijvoorbeeld aan de The Last of Us-multiplayergame die na jaren productie in de prullenbak werd gegooid.

Daarbij is de ‘cross-generation’-periode van deze generatie uitzonderlijk lang. Nog altijd komen diverse games niet alleen op PlayStation 5, maar ook op PlayStation 4 uit. Nu is dat iets wat in de toekomst alleen maar vaker voor zal komen – de grenzen tussen consolegeneraties vervagen en daarmee is het ook makkelijker om de prestaties van games terug of juist op te schalen.

Toch zorgt het er ook voor dat er onder gamers een gevoel groeit dat nog lang niet het uiterste uit de PS5 is gehaald. Er is méér met dat apparaat mogelijk, vooral met de bestaande PS5 Pro in het achterhoofd. Een verlengde levenscyclus voor de console geeft ontwikkelaars de kans om een aantal schitterende spellen af te leveren in de laatste jaren van de spelcomputer – de ontwikkeltijd van games wordt immers ook steeds langer. Met toppers als Grand Theft Auto 6, The Witcher 4 en Intergalactic: The Heretic Prophet nog in het verschiet, is er meer dan genoeg potentie om het de komende jaren uit te zingen met de PS5.

Niet zonder risico’s

Natuurlijk brengt het uitstellen van een consolelancering ook risico’s met zich mee, zowel voor Sony als voor de consument. Het is namelijk helemaal niet zeker dat de wereldeconomie er eind dit decennium beter voor staat. Daarnaast zet het Sony voor een moeilijke keuze: gooit het jaren aan research voor de PS6 weg om de console eind dit decennium met moderne specificaties uit te kunnen brengen, of behoudt het simpelweg de huidige specs zodat deze op release mogelijk al deels zijn verouderd?

De eventuele keuze om de PlayStation 6 uit te stellen zal dan ook niet over één nacht ijs gaan. Het is aan de goedbetaalde mensen in topposities binnen het bedrijf om die knoop door te hakken. Maar puur vanuit mijn eigen, egoïstische liefde voor games gezien, heb ik er totaal geen moeite mee om nog een jaar of drie, vier op de PlayStation 5 te spelen. Laat maar eens zien wat die console nog kan, en blaas ons in 2029 of 2030 weg met een nieuwe consolegeneratie die écht een flinke technologische stap zet!

▼ Volgende artikel
Code geel en oranje wegens ijzel: zo check je of jouw route al gestrooid is
© Rijkswaterstaat
Huis

Code geel en oranje wegens ijzel: zo check je of jouw route al gestrooid is

Het is weer #codegeel en #codeoranje wegens gladheid door ijzel. Moet je toch de weg nog op? Via een online kaart van Rijkswaterstaat zie je live waar strooiwagens rijden en op welke wegen net is gestrooid.

Ga je naar Rijkswaterstaatstrooit.nl, dan krijg je een interactieve kaart van Nederland te zien. Op die kaart bewegen kleine icoontjes die de actieve strooiwagens voorstellen. De gegevens worden voortdurend bijgewerkt, waardoor je vrijwel live ziet waar op dat moment wordt gestrooid.

Naast de voertuigen vallen de gekleurde lijnen op de wegen op. Een paarse lijn betekent dat er in de afgelopen zes uur zout is gestrooid. Zo kun je zelf een inschatting maken of jouw route redelijk begaanbaar zal zijn of dat je éxtra moet opletten.

©Rijkswaterstaat

Zo lees je de strooikaart

De kaart laat zien wat er nu en in de afgelopen zes uur op de weg is gebeurd, inclusief strooiacties, wegdektemperaturen en radarbeelden. Kijk je vooruit, dan toont de kaart een verwachting tot twee uur met de voorspelde verwachte radarbeelden en wegdektemperaturen. Goed om te weten: je kunt niet vooruitkijken om te zien waar de strooiwagens gaan rijden.

Wegtemperatuur

De kaart laat meer zien dan alleen strooiwagens. Op veel plekken vind je ook de actuele wegdektemperatuur. Die metingen komen van 330 meetpunten verspreid over het hele land. Dat is relevant, omdat het asfalt vaak al onder nul kan zijn terwijl de buitentemperatuur dat nog niet is. Gaat het sneeuwen of regenen op wegdek dat al beneden nul is, dan neemt de kans op gladheid toe. Is de temperatuur nu nog boven het vriespunt? Kijk dan zeker even vlak voordat je vertrekt. Vanaf een uur of drie 's middags daalt de temperatuur namelijk meestal. En een wegdek dat nu net boven nul is, kan dan ineens zomaar weer kouder zijn. Als het dan gaat regenen, moet je echt uitkijken.

©Rijkswaterstaat

Dinsdag 3 februari, 14:30 uur: in het noordoosten van Groningen duikt de temperatuur van het wegdek al onder het vriespunt.

Neerslag

Links op de kaart zie je ook nog een icoontje van een regenwolk met een zonnetje erachter. Klik je daar op, dan krijg je actuele beelden te zien van de neerslagradar van het KNMI. Je ziet niet alleen waar de neerslag valt, maar ook of er veel of weinig valt. Dit neerslagbeeld wordt elke vijf minuten opnieuw samengesteld.

De weg op? Doe het veilig!

Door voor vertrek de strooikaart te checken, vergroot je de veiligheid onderweg. Of, anders gezegd, je verkleint het risico. Wat je zelf nog kunt doen? Controleer de bandenspanning. Bij kou daalt de luchtdruk, niet alleen buiten maar ook in je banden, wat invloed heeft op de grip. Kijk daarnaast of je voldoende ruitensproeiervloeistof hebt en of die bestand is tegen vorst; daar bestaan verschillende gradaties in. Leg voor de zekerheid ook een zaklamp en een warme deken in de auto. Een powerbank is eveneens handig. Mocht je vast komen te staan, dan blijf je in ieder geval warm en heb je genoeg stroom om je smartphone een paar uur te gebruiken.