mei 1, 2017

Python

Programmeren met Python

Python is een programmeertaal die makkelijk te leren, te begrijpen en te gebruiken is, toch kun je met python handige en grote programma’s maken. Omdat het niet ingewikkeld is ben ik begonnen met Python leren in plaats van een ander taal. Python heeft in vergelijking met andere talen een heel leesbare code en is krachtig, oftewel kan met weinig code veel doen. Hierom wordt het door veel grote bedrijven gebruikt, waaronder google, waarbij Python in de top 3 staat van de meest gebruikte programmeertalen. Python is ontworpen en ontwikkeld door Guido van Rossum, die op de naam is gekomen door de bekende televisieshow Monthy Python’s Flying Circus.
Online zijn er veel hulpmiddelen om Python beter te begrijpen en meer dan genoeg mensen die graag antwoord geven op vragen die je hebt. Zelf heb ik Python geleerd op Codeacademy.
Monthy Python

Hoe gebruik je Python?
Bij het uitleggen ga ik er van uit dat je al een aantal dingen over programmeren weet, onder andere wat programmeren is en wat een syntax is. Er zijn twee verschillende versies van Python, namelijk Python 2 en Python 3. Deze lijken erg op elkaar, er zijn maar een paar kleine verschillen. Python 2 wordt niet meer verder ontwikkeld en zit nu in zijn definitieve versie 2.7.13. Langzaam aan wordt deze versie minder gebruikt en stapt iedereen over naar Python 3, de versie waarover ik wat ga vertellen.
Python IDLE
Als je op de site van Python Python download, krijg je een programma genaamd Python IDLE, IDLE staat voor Integrated DeveLopment Environment of voor Integrated Development and Learning Environment. Ook deze afkorting is gekozen onder andere dankzij Monthy Python, omdat de achternaam van een van de oprichters van Monthy Python Eric Idle heette. Het idee van de IDLE is dat het overzichtelijk en makkelijk te gebruiken is, het is handig voor beginners. Het bevat ook een aantal handige toevoegingen, zoals overzichtelijke kleuren voor de syntax en automatisch inspringen van je code, wat erg belangrijk is. Als je het programma opstart begin je bij de Python Shell. Hierin kun je direct code invoeren, maar dit is meer voor kleine code, je krijgt ook direct de uitkomst van je code of een foutmelding als er iets niet klopt aan je code.
Python 3.6.1 Shell
Als je dan op file klikt en dan op new file opent hij dit scherm:
Python File
Hierin kun je een groot programma schrijven en hem opslaan als een .py bestand, dan kun je hem uitvoeren door op F5 te drukken, dan opent hij de Shell, als je hem gesloten had, en daar komt dan de uitkomst van je code, of een foutmelkding als er iets niet klopt aan je code.
Comments
Allereerst is het handig om te weten dat je een comment, opmerking in het Nederlands, kunt plaatsen in je code, zodat jij, of iemand anders als hij of zei naar je code kijkt weet waar dat stuk over gaat. Je schrijft een comment door aan het begin van de regel een # te plaatsen, alles wat je dan op die regel er achter typt wordt dan grijs en heeft geen invloed op de code. Als je een comment van meerdere regels wilt maken, typ je 3 keer ” achter elkaar: “””. Alles wat er na komt is dan een comment, totdat je weer “”” typt.
Comments
Variables
Nu beginnen we echt met de syntax. Python werkt met gegevens via variables, variabele in het Nederlands. Een variable geef je een naam en hij slaat dan een bepaald gegeven op. In tegenstelling tot andere talen hoef je niets speciaals te doen om een variable te maken, je typt gewoon iets in en geeft aan wat voor gegevens er in opgeslagen moet worden, dit gegeven kan verschillende dingen zijn, zoals een stuk tekst, een getal, of een lijst. Zo kun je typen: getal=5. Als je dan iets doet met getal vat Python het op als 5. Als je een variabele later weer wilt veranderen kan dat heel makkelijk: je typt als je bijvoorbeeld getal naar 7 wilt veranderen gewoon in: getal=7. Dit moet je wel doen op een nieuwe regel, Python checkt namelijk regel per regel de code, beginnend bij regel 1 en eindigend bij de laatste regel. Dus elke keer als je iets nieuws berekent, vast stelt, of iets anders in het algemeen doet, moet je op een nieuwe regel beginnen door op enter te drukken.
Booleans
Booleans klinkt heel ingewikkeld, maar dat is het niet. Een boolean is een gegeven die je in een variable kunt opslaan en is als het ware een lichtknop: Hij staat aan of hij staat uit. In Python wordt de aan-stand aangegeven met True en de uit-stand met False, zo kun je typen: knop=True of knop=False (let op de hoofdletters!). Later als je functies gaat gebruiken komen booleans goed te pas.
String
Een string is een gegeven wat bestaat uit een stuk tekst. Je geeft een string aan door of te beginnen met ” of met ‘ en met hetzelfde karakter te eindigen. Zo kun je typen: tekst="dit is een stuk tekst" of tekst='dit is een stuk tekst'.
print functie
De print functie is de eerste en makkelijkste functie waar ik het over ga hebben. Een functie neemt een of meerdere inputs en geeft via een algoritme een of meerdere outputs. De print functie neemt als input een string en geeft als output de uitgetypte vorm van de tekst. De print functie ziet er zo uit: print(). Bij de print functie kun je naast een string of een variable met een string ook nog strings en variables combineren door een plusteken of een komma er tussen te zetten. zo kun je typen: tekst="Dit is een" en dan print(tekst + "tekst in Python!") of tekst="Dit is een" en dan print(tekst, "tekst in Python!"). Dan zul je op het scherm zien: Dit is een tekst in Python!. In Python 2 werkt de print functie wat makkelijker, je hoeft namelijk geen haakjes om de input heen te zetten.
String functies
Een string kun je op meerdere manieren beïnvloeden met functies. Je kunt alle letters kleine letters maken met lower(), of alle letters grote letter maken met upper(). Bij deze functies typ je een string of een variable en daar achter zet je .lower() of .upper(), dit kun je dan printen, of je kunt het in een variable stoppen. Zo kun je typen: tekst="ik ben een tekst" en dan nieuwe_tekst=tekst.upper(). Als je dan nieuwe_tekst print: print(nieuwe_tekst) staat er op het scherm: IK BEN EEN TEKST. Ook kun je direct typen: print(tekst.upper()) dan komt er ook IK BEN EEN TEKST uit, dit is makkelijker alleen soms minder handig, omdat je bij de eerste manier de tekst in hoofdletters in een variable hebt, deze kun je later dan weer gebruiken. De functies werken ook als je een string in plaats van een variable gebruikt: print("HOofdLetTErs".lower()), dan staat er op het scherm: hoofdletters. De functie len() werkt anders. Het heeft als input een string en als output een integer, een geheel getal, en je typt de input tussen de haakjes: print(len("drie") geeft 4 hij print namelijk het aantal karakters in de string als integer. Soms wil je van een integer een string maken of andersom, om bijvoorbeeld een getal in een stuk tekst te zetten, of om te rekenen met een getal uit een tekst. Dit kan met de str() en int() functies: str(6) maakt van het getal 6 een string en int("6") maakt van de string 6 een integer.
Rekenen
Met Python kun je ook rekenen. Met simpele karakters. We nemen a=2, b=3 en c=-1
Optellen: print(a+b) geeft 5
Aftrekken: print(a-b) geeft -1
Vermenigvuldigen: print(a*b) geeft 6
Delen: print(b/a) geeft 2
Delen met omlaag afronden: print(b//a) geeft 1
Rest: print(b%a) geeft 1
Negatief: print(-a) geeft -2
Absolute waarde: print(abs(c)) geeft 1
Machten: print(a**b) geeft 8
De output van deze berekeningen worden gegeven in de vorm van een integer. Dit is een gegeven en dus kun je het ook opslaan in een variable. Zo kun je typen: som=5*4 en print(som), dan komt er op het scherm 20 uit.
Comparators
Er zijn nog andere karakters die je kunt gebruiken bij het rekenen. Deze hebben minder met rekenen zelf te maken en meer met booleans. Deze karakters worden comparators genoemd:
==, checkt of 2 waardes exact gelijk zijn
!=, checkt of 2 waardes niet gelijk zijn
>, checkt of de linker waarde groter is dan de rechter waarde.
>=, checkt of de linker waarde groter dan of gelijk aan de rechter waarde is.
<, checkt of de rechter waarde groter is dan de linker waarde.
<=, checkt of de rechter waarde groter dan of gelijk aan de linker waarde is.
Als de voorwaarde niet klopt, is de output False en als hij wel klopt is de output True. Je kunt deze output dan op deze manier in een variable stoppen: boolean_1=5>2*3, omdat 5 groter dan 6 is zal het gegeven in de variable boolean_1 True zijn. Een ander voorbeeld: boolean_2=15>2*2**3, omdat 15 niet groter dan 16 (Python volgt de vaste rekenvolgorde) is zal het gegeven in de variable boolean_2 False zijn.
Boolean Operators
Dan heb je ook nog boolean operators, een boolean operator vergelijkt booleans en geeft als output weer een booleans. De 3 booleans operators zijn:
and, kijkt of beiden True zijn
or, kijkt of minstens een True is
not, geeft het tegenovergestelde
Zo geeft True and False als output False en True and True geeft als output True, deze output kun je natuurlijk weer in een variable stoppen. True or False geeft True en 5>6 or 10/2==1 geeft False, not True geeft False en not False geeft True. De operators zijn overlapbaar, dus je kunt er meerdere in een keer gebruiken, zo geeft not not 4!=4 False en False or not False and True geeft True, omdat not als eerst gecheckt wordt, daarna and en daarna pas or.
if, elif en else
Leuk al dat True en False, maar nu gaan we ook echt wat met deze booleans doen. In een code kun je namelijk if, elif en else typen. Het begint allemaal met if. Als je in de code if typt, typ je daarachter True of False, of iets wat uitkomt op een van de twee, zoals not 2>3. Helemaal aan het eind van de ifregel moet een : staan, zodat Python weet dat het klaar is. Als dat wat er achter staat True is, gaat Python door met de regels eronder, deze regels hebben een insprong om aan te duiden dat ze bij if horen. Als dat wat er achter staat False is, slaat Python de regels met een insprong over. Na een if komt meestal een elif, kort voor else if. elif werkt precies hetzelfde als if, behalve als de if een elif (je kunt meerdere elif's achter elkaar hebben) die er voor stond True was, dan slaat Python alle elif's over. Als de if's en elif's ervoor echter allemaal False waren, gaat Python wel door naar de elif. Als laatste heb je ook nog else. Als de if en alle elif's False waren, dan gebruikt Python dat wat er bij else hoort, aangeduid met een insprong. else heeft geen stuk achter zich, maar alsnog moet je een : erachter zetten.
if, elif, else
Als je op F5 drukt om het op te starten, start de Shell op en zie je dit:
Uitkomst if, elif, else

Loops
Iets wat lijkt op if is while. Bij while doe je hetzelfde als met if, alleen het verschil is dat de code onder while herhaald wordt, totdat het stuk achter while niet meer False is.

zelf een functie maken
In Python kun je ook zelf een functie maken, dat doe je met def achter def schrijf je de naam van je functie, bijvoorbeeld functie_1, direct achter de naam zet je 2 haakjes en binnen die haakjes zet je de namen van de verschillende inputs, dit verklaar ik straks. Dat ziet er dan bijvoorbeeld zo uit: def functie_1(x, y, z). De x, y, z tussen de haakjes zijn 3 verschillende inputs, in de functie gebruik je deze inputs met een algoritme om een output te krijgen. Binnen de functie gelden dezen als variables, de gegevens in deze variables worden gegeven bij de input. Als iemand functie_1 zou gebruiken zou hij bijvoorbeeld typen: functie_1(1, "ja", True). Binnen deze functie zou de variable x het gegeven 1 hebben, y, "ja" en z, True. Achter def functie_1(x, y, z) moet er ook een : staan, omdat er onder komt te staan wat de functie precies doet, het algoritme, met weer in een insprong. Zo kun je typen:
Functie
De uitkomst van dit programma is:
Functie Uitkomst

Voorbeeld
Met Python kun je heel makkelijk simpele programma's maken. Ik heb een programma gemaakt die alle priemgetallen geeft tot een bepaald getal:
Priemgetallen
In dit programma zie je nog iets nieuws, namelijk een lijst. Een lijst is precies wat het zegt, een lijst, waarin je verschillende gegevens en variables in kunt stoppen. Met de functie .append() voeg je een item aan het einde van de lijst toe. Met de functie l[p] neem je in dit geval het pde getal van de lijst l. Het is wel belangrijk om te onthouden dat het 1e item in de lijst nummer 0 is, de 2e nummer 1 etc. Als we het programma met F5 aanzetten zie je de uitkomst, een lijst met alle priemgetallen tot en met 1000:
Lijst met Priemgetallen
Dit is nog maar een korte introductie tot Python, er zijn nog veel meer onderwerpen die ik niet allemaal kan uitleggen, zoals waarom de upper() en len() functie anders gebruikt worden of hoe je de wortel trekt van een getal. Op het internet staan veel bronnen over hoe Python werkt. Ik hoop dat je hierdoor zelf al een beetje aan de slag kunt met Python en dat je alles snapt. Bedankt voor het lezen!