Python – Leren programmeren – deel 1
Python is een programmeertaal die over het algemeen gemakkelijk te lezen is. Python is dan ook een HLL ofwel High Level Programming programmeertaal. Dit is meteen waarom Python zo vaak gebruikt wordt. Je kunt het lezen en andere kunnen het ook gemakkelijk lezen. Hierdoor is het beter te onderhouden en denk je beter / logischer na tijdens het programmeren. Python wordt veel gebruikt om te scripten maar kan ook gecompiled (gecompileerd) worden in uitvoerbare programma’s. We zien Python vaak terug in de security community in de vorm van scripts en applicaties. Om Python beter te begrijpen zal ik een 6-delige serie maken om de taal wat beter uit te leggen.
Python is ontwikkeld door “Guido van Rossum” en is een zogenaamde “interpreted” programmeertaal. Dit maakt het ook uitermate geschikt om te scripten. Interpreted wil zeggen dat de code niet gecompileerd hoeft te worden alvorens deze uitgevoerd kan worden. Een vereiste hieraan is wel dat het systeem beschikt over een “interpreter” om de code te begrijpen en uit te voeren. De Python syntax (set van regels voor de Python “gramatica” en “spelling”) stelt de ontwikkelaar in staat om programma’s te schrijven met minder code dan andere talen zoals b.v. C.
Python ondersteund meerdere “programming paradigms” (ofwel programmeerparadigma). Dit zijn denkpatronen of uitgesproken concepten m.b.t. het programmeren. Bekende vormen zijn “object georiënteerd” (OO) waarbij een systeem opgebouwd wordt uit “objecten”. “Imperatief” ofwel “Procedureel programmeren” waarbij programma’s opgesteld worden in de vorm van opdrachten die direct uitgevoerd kunnen worden. Python ondersteund deze en nog meer vormen en is dan ook een hybride programmeertaal.
In programmeercode zien we “blokken” vaak in de vorm van brackets en keywords. Python gebruikt echter “whitespace” ofwel tabs om blokken te definiëren. Dit noemen we “whitespace indentation”.
Python heeft een dynamisch typsysteem, automatisch geheugenbeheer en een grote default bibliotheek. Dat wil zeggen dat er vele Python modules zijn waarmee we gemakkelijk de functionaliteiten van onze applicatie kunnen uitbreiden.
Python wordt tegenwoordig veel gebruikt in robotica, IOT (Internet Of Things) web-apps, app automation en scritping. Het grootste nadeel van Python is echter dat het langzamer is dan andere programmeertalen zoals Java en C. Echter, voor de meeste projecten zal dit geen probleem vormen omdat de moderne processoren zo snel zijn dat de “vertraging” nauwelijks merkbaar zal zijn.
Vaak zien we nog Python 2.x terug. Echter is Python 3.x al in gebruik sinds 2008. In deze posts richten we ons dan ook op Python 3.x. (3.6rc1). Ik gebruik Python voor deze posts op Windows maar de code zal identiek zijn op andere platformen.
Ok, without further ado… let’s get started.
Installeren van Python
Het installeren van Python is ontzettend eenvouding op zowel Windows, Mac en Linux. Ga naar https://www.python.org/ en download de gewenste release.
Installeer de zojuist gedownloade installer (voeg eventueel Python toe aan je Windows pad tijdens installatie zodat je later vanuit iedere locatie toegang hebt tot Python).
Na de installatie heb je toegang tot de Python ontwikkelshell “Python” en “IDLE”
Er zijn echter betere programmeeromgevingen (IDE – Integrated development environment) beschikbaar zoals b.v. PyCharm. Omdat ik zelf graag in PyCharm ontwikkel werken we in deze posts ook met PyCharm. Ga naar https://www.jetbrains.com en download de community editie. Installeer deze en start je eerste project:
Verander de default settings zodat de “Python Console” overeenkomt met de geïnstalleerde versie (en bij meerdere versies met de versie die je wilt gebruiken).
En vervolgens veranderen we ook de “Project Interpreter” naar de juiste versie:
Door rechts te klikken op je project kun je je eerste Python bestand aanmaken (Python bestanden hebben .py als extensie). In dit voorbeeld maken we “start.py” aan.
Nu zijn we klaar om te beginnen!