Python wint de laatste jaren enorm veel aan populariteit. De vraag naar professionals die over deze kennis beschikken neemt dan ook toe. Wat is Python? Wat is de toegevoegde waarde ervan? En waarom is certificeren in Python zo belangrijk? Dit zijn een aantal vragen waar Nathanaël tijdens zijn kennissessie antwoord op gaf en in deze blog nogmaals voor jullie op een rijtje zet!
Waarom certificeren in Python?
De vraag naar professionals in de markt die over Python kennis beschikken neemt toe. Python is een krachtige taal en goed inzetbaar voor diverse doeleinden. Zo is het binnen automatisering een van de meest gebruikte scripttalen. Een andere belangrijke pijler binnen automatisering op het gebied van netwerken is Ansible. Als IT’er is het dan ook van belang om over een bepaalde basis te beschikken. Het behalen van de Python Essentials 1 kan ook een mooi opstapje zijn naar de Cisco certificering, waarin Python ook een steeds grotere rol speelt.
De eerste stap om aan te tonen dat je weet hoe een script is opgebouwd, is door de Python Essentials 1 cursus te behalen. Na het doorlopen van de modules binnen deze cursus, die door OPENEDG worden aangeboden, zou men gemakkelijk kunnen opgaan voor het PCEP (Certified Entry-Level Python Programmer) examen. Vervolgens is de stap naar het PCAP (Certified Associate in Python Programming) examen een stuk minder groot.
Hoe ziet de training eruit?
De Python Essentials 1 cursus is opgedeeld in vier modules. De eerste module is de introductie tot Python en hoe deze te gebruiken en te installeren. In de drie modules erna wordt er meer de diepte ingegaan. In deze blog worden de belangrijkste onderdelen samengevat.
Module 2
In module 2 wordt de print () functie behandeld. Hiermee kan men de tekst vanuit het script afdrukken. Deze functie is vooral handig om bepaalde waardes van variabelen te tonen op het moment dat er een script gemaakt wordt en om te testen. Ook zijn er voor de testen diepgaandere formules, die geautomatiseerd testen uit kunnen voeren. In deze module wordt er ook uitgelegd hoe er een nieuwe regel gemaakt kan worden. Dit gaat als volgt:
Wordt weergegeven als:
Ook worden voor functies de positionele en keyword argumenten besproken. Zo is het teken wat standaard gebruikt wordt om woorden te scheiden bij print een spatie. Als je dit op een andere manier wilt inrichten, kan dat worden aangegeven door sep=''. Bijvoorbeeld:
Hetzelfde geldt voor het einde van de print() functie. Dit is standaard \n voor een nieuwe regel. Ook dit kan aangepast worden naar iets anders, bijvoorbeeld door een punt. Dit doe je door het volgende op te geven: End='.'. Dit geeft het volgende voorbeeld:
Het volgende deel gaat over variabelen, en dan voornamelijk literals. Dit zijn bijvoorbeeld nummers (1, 2, 3 etc.) of zinnen (‘hallo, wereld’). Andere notaties voor nummers die Python kan doen zijn binair (0bgetal (binair naar decimaal) of bin (getal) (decimaal naar binair)), octaal (0ogetal (octaal naar decimaal) of oct (getal) (decimaal naar octaal)), en hexadecimaal (0xgetal (hexadecimaal naar decimaal) of hex (getal) (decimaal naar hexadecimaal)).
Naast de notaties die er zijn, wordt er onderscheid gemaakt in hele getallen zonder komma en getallen met een komma. Getallen die geen komma hebben worden integers genoemd, deze kunnen positief en negatief zijn. Getallen die een komma hebben, zijn floating point getallen. In Python worden deze genoteerd met een punt (bijvoorbeeld 5.5). Daarnaast zijn er boolean waarden (True / False). Dit wordt gebruikt om vergelijkingen op te zetten, een voorbeeld hiervan: 1 == 5. Dit voorbeeld is een uitkomst van False en dit statement zal dan ook niet uitgevoerd worden. Een ander voorbeeld is 5.0 == 5. Dit is een vergelijking tussen een floating point en een integer. De uitkomst van de vergelijking is True. De vergelijkingen hier zijn niet heel bruikbaar, maar in if statements bepaald de uitkomst of een stuk code uitgevoerd wordt.
Daarnaast wordt in deze module behandeld hoe men kan rekenen in Python, hoe variabelen werken, welke typen variabelen er zijn en hoe comments kunnen worden opgenomen. Ook wordt de input() functie besproken. Deze wordt gebruikt om input van gebruikers in het script te verwerken. Input () vertaald hetgeen dat wordt ingevoerd naar een string. Zo kan er bijvoorbeeld een ‘pad’ naar een bestand opgegeven worden, of om getallen in te voeren. Deze dienen dan wel in een variabele opgeslagen te worden om gebruikt te worden. Wat de functie ook in zich heeft, is het weergeven van een zin om aan te geven wat voor input er verwacht wordt. Dit kan de volgende code opleveren:
Bovenstaande levert een vrije invoer op. Dit geeft een garantie dat de invoer ook daadwerkelijk een integer is. Dit kan afgevangen worden door het volgende op te geven: Waarde 1 = int (input ('geef een integer op: ')). Als dit in Python ingevoerd wordt, samen met een waarde, kan het volgende voorkomen:
De eerste waarde is een 5 en geeft geen fout. De tweede test, met de letter 'a', geeft wel een fout, omdat het geen integer is die ingevoerd wordt. Om dit op te lossen kan men een try-except-else-finally gebruiken, deze methode om fouten af te vangen komt in module 4 aan bod.
Module 3
In de derde module worden er belangrijke concepten geïntroduceerd die in veel scripts gebruikt worden. Dit zijn de if .. elif .. else statements, de while en for loops, en concepten voor bit operators en multidimensional arrays. If .. elif .. else statements zijn belangrijk om beslissingen te maken in het script. Er zijn verschillende operatoren die toegepast kunnen worden in het statement. De operatoren zijn van belang om de uitkomst te bepalen. De volgende operatoren zijn beschikbaar:
==, !=, >, <, >=, <=.
De opbouw van het if statement is als volgt:
Hier worden er vergelijkingen gemaakt. Als het eerste if statement waar is, volgt het blok dat ingesprongen is. De flow gaat door tot er een vergelijking komt waar de waarde True uit komt. In dit geval is dat bij elif z == x: en wordt ‘z is gelijk aan x’ afgedrukt op het scherm. Mocht er geen enkel statement een True opleveren, wordt er ‘else’ uitgevoerd.
Loops met while en for zijn ook belangrijke zaken, vooral als er data is die doorlopen dient te worden. Hiervoor is de ‘for loop’ het meest geschikt. De while loop kan tot een oneindige loop leiden. De syntax hiervoor is bijvoorbeeld:
Als er hier geen ander statement gebruikt wordt, loopt deze eeuwig door. Een oplossing hiervoor kan zijn:
Dit zorgt er voor dat wanneer het A == 5 statement True oplevert, de loop verlaten wordt door het break statement. Bij een while statement kan er ook een else statement toegevoegd worden. Dit else statement wordt dan altijd uitgevoerd op het moment dat de while loop verlaten wordt. Of dit toegevoegde waarde heeft ligt aan de programmeur, gezien code na de while loop ook uitgevoerd wordt, of er een elseblok is of niet (mits de while loop verlaten wordt). Dit geldt ook voor de for loop.
De for loop is goed te gebruiken als er een lijst doorgelopen wordt. Maar ook een loop die op of aftelt kan gebruikt worden. Het voordeel van de for loop is dat deze niet in een oneindige loop terecht kan komen.
De start van de for loop is als volgt: for x in y:. Hier kan ‘y’ een list, dictionary of tupel zijn. ‘X’ is dan een element uit de verzameling. Ook kan een range gebruikt worden: for x in range (0,10):. De output van het statement is als volgt:
Het range commando begint bij het opgegeven nummer (in dit geval 0) en telt TOT het opgegeven nummer. In dit voorbeeld is 10 opgegeven, dus wordt er tot en met 9 geteld. Er kan ook een stapgrootte opgegeven worden:
Dit geeft stappen van 5, dus een uitkomst van 0 en daarna 5. Als de stapgrootte als een negatief getal wordt opgegeven, telt de range af in plaats van op. Er kan dan een statement als volgt worden opgegeven:
Module 4
In module 4 wordt er dieper ingegaan op functies en dan voornamelijk het zelf definiëren van functies. Zo is het bij een functienaam toegestaan om letters en cijfers te gebruiken, plus underscore (_). Maar een functie mag alleen beginnen met een letter. Daarnaast is Python erg gevoelig voor kleine letters en hoofdletters. Dit betekent dus dat functie niet gelijk is aan Functie. Dit geldt overigens niet alleen voor functies, maar ook voor variabelen. Een functienaam mag ook geen ‘key’ woord bevatten binnen Python. Een functie wordt als volgt gedefinieerd:
Parameters kunnen voor gedefinieerd zijn (bijvoorbeeld: def functie (a=10):), of alleen een variabele bevatten die opgegeven moet worden bij het aanroepen van de functie (def functie(a):). Het is mogelijk meerdere parameters te definiëren, zoals def functie (a, b, c=10):. In dit laatste voorbeeld zou de functie als volgt aangeroepen kunnen worden: functie (5, 4, 3). Bij het aanroepen van de functie moet het aantal parameters kloppen die niet vooraf ingevuld zijn. Bij het eerdere voorbeeld kan de functie ook aangeroepen worden als: functie (5, 4), de c waarde is namelijk al opgegeven.
Ook het volgende is mogelijk: functie (5, b=4, c=3). Hierbij moeten er positionele parameters eerst opgegeven worden, daarna de benoemde parameters. De volgorde van de benoemde parameters maakt hierbij niet uit. Het is niet mogelijk om functie (a=5, 4 ,3) te gebruiken om de functie aan te roepen. Functies zijn zeer krachtig om scripts overzichtelijker te maken. De vuistregel hierin is: zodra er code herhaald wordt om eenzelfde uit te voeren, plaats deze code dan in een functie. Zo wordt er minder code gebruikt en wordt er code hergebruikt. Dit zorgt er ook voor dat er een aanpassing in het script op maar één plaats gedaan hoeft te worden in plaats van op meerdere plaatsen. Dit zorgt er ook voor dat er bij wijzigingen de kans op fouten kleiner is en als er een fout gemaakt wordt, dit eenvoudiger te herleiden is.
Python is een krachtige taal en goed inzetbaar voor diverse doeleinden. Het leren van de beginselen van Python zal helpen bij het sneller doorgronden van de scripts. Ben jij na het lezen van deze blog enthousiast geworden over Python en zou je er graag meer over willen leren? Neem dan contact met ons op en wie weet kunnen wij wat voor elkaar betekenen!