Programmeren in Python/Printversie

Uit Wikibooks
Naar navigatie springen Naar zoeken springen


Overzicht

Wat is Python?[bewerken]

Python is een programmeertaal.

Geschiedenis van Python[bewerken]

Python is ontstaan in 1989 en is de ontwikkeling werd door de Nederlander Guido van Rossum.

Waarvoor wordt Python gebruikt?[bewerken]

Python is een veelzijdige programmeertaal en is ook één van de meest gebruikte. Het wordt gebruikt door vele grote organisaties zoals onder andere, Wikimedia, CERN, NASA, Google, Facebook, etc.

Python kan onder andere gebruikt worden voor de volgende toepassingen:

  • Artificiële intelligentie
  • Automatisering: Python kan gebruikt worden als scripttaal om taken te laten uitvoeren onafhankelijk van het gebruikte besturingssysteem. Hierdoor kan Python bijvoorbeeld taken automatiseren van een werkcomputer.
  • Data-Analyses
  • Webapplicaties: Python wordt vaak gebruikt voor het ontwikkelen van webapplicaties. De website reddit is helemaal in Python geschreven. Er bestaan ook vele frameworks die het makkelijk maken om snel een webapplicatie te ontwikkelen.
  • Wiskunde en wetenschap

Dit boek zal zich voornamelijk richten op de basis van Python en zal dus niet gericht zijn op een specifiek vakgebied.

Python wordt standaard meegeleverd met de meeste Linux distro's en MacOS-en.

De verschillende versies[bewerken]

Er zijn tot nu toe drie hoofdversies geweest van Python. Namelijk Python 1, Python 2 en Python 3. Deze zijn nog eens onderverdeeld in verschillende subversies, bijvoorbeeld Python 2.7 en Python 3.8. Het verschil tussen de hoofdversies Python 1, 2 en 3 is dat ze fundamenteel grote verschillen hebben en anders functioneren. Het verschil tussen Python 2 en 3 is zelfs zo groot dat Python 3 niet achterwaarts compatibel is met Python 2. Dit betekent dat code geschreven in Python 2 niet zomaar zal werken in Python 3. Veel code zal dus moeten herschreven worden zodat het ook zal werken in Python 3.

Naast verschillen tussen de hoofdversies, zijn er ook verschillen in de subversies. Bijvoorbeeld 3.7 en 3.8. Nieuwere subversies zijn meestal bedoeld om functionaliteiten toe te voegen en/of te verbeteren. Het kan ook zijn dat er functies worden verwijderd en dus het kan zijn dat sommige code herschreven zal moeten worden als er van versie van Python wordt veranderd.

De subversies zijn dan nog eens onderverdeeld in microversies. Bijvoorbeeld 3.7.5. De verschillen tussen de microversies zijn eerder klein en hebben meer te maken met oplossen van bugs en het versterken van de beveiliging.

Python 1 wordt als sinds het jaar 2000 niet meer ondersteund en Python 2 al niet meer sinds 1 januari 2020. Dit boek gaat er vanuit dat u beschikt over de laatste versie van Python. Als er problemen zijn met het uitvoeren van code die voorkomen in dit boek, kan het zo zijn omdat u een oudere versie van Python hebt.

Externe Links[bewerken]


Installatie

In dit hoofdstuk, zien we hoe we kunnen controleren of we Python eventueel al hebben en zo niet hoe we het kunnen installeren. Ook gaan we zien hoe we Python kunnen updaten en verwijderen.

Voor de volledigheid wordt hier ook nog gesproken over Python 2, hoewel die officieel niet meer wordt ondersteund wordt het nog veel gebruikt. In dit boek, gaan we er vanuit dat u de laatste versie van Python heeft geïnstalleerd.

Controleren of Python al is geïnstalleerd[bewerken]

Het kan zijn dat Python al geïnstalleerd is op uw computer, omdat sommige besturingssystemen standaard met Python voorgeïnstalleerd worden geleverd of omdat iemand Python al voor u heeft geïnstalleerd. De gemakkelijkste manier om dit te controleren is door Python te gebruiken in de command line interface van het besturingssysteem.

Het is meestal voldoende om "Python3" of "Python" als commando in te vullen om Python te starten. Het beste is echter om "Python3 --version" of "Python --version" te gebruiken. Hiermee kunt u meteen weten welke versie van Python u hebt en start u de interactive modus niet op.

Windows[bewerken]

Open Command Prompt en typ het commando "Python --version". Als Python geïnstalleerd is kunt u mogelijk het volgende resultaat krijgen.

C:\>Python --version
Python 3.8.1

Als u enkel "Python" ingeeft als commando en Python is al geïnstalleerd, dan komt u terecht in de interactieve modus van Python. Om de interactieve modus te stoppen, gebruik de commando "exit()" of sluit simpelweg de command prompt.

Als Python niet geïnstalleerd krijgt u wellicht het volgende te zien.

C:\>Python --version
'Python' is not recognized as an internal or external command,
operable program or batch file.

MacOS[bewerken]

MacOS wordt normaal gezien met al twee versies van Python voorgeïnstalleerd geleverd, namelijk Python 2 en Python 3. Hierdoor kunt u de twee versies van Python al meteen gebruiken zonder iets te moeten installeren. Wilt u toch controleren of Python effectief is geïnstalleerd of wilt u weten welke versies u gebruikt, open dan simpelweg de app Terminal daarin kunt u voor Python 3 de commando "Python3 -- version" gebruiken.

MacBook:~ user$ python3 --version
Python 3.8.1

En voor python 2, simpelweg de commando "Python --version".

MacBook:~ user$ python --version
Python 2.7.16

Als u enkel "Python" of "Python3" ingeeft als commando, dan komt u terecht in de interactieve modus van Python. Om de interactieve modus te stoppen, gebruikt u het commando "exit()" of sluit simpelweg de terminal af.

Linux[bewerken]

Linux komt meestal met al twee versies van Python voorgeïnstalleerd, namelijk Python 2 en Python 3. Hierdoor kunt u de twee versies van Python al meteen gebruiken zonder iets te moeten installeren. Wilt u toch controleren of Python effectief is geïnstalleerd of wilt u weten welke versies, open simpelweg de app Terminal daarin kunt u voor Python 3 de commando "Python3 -- version" gebruiken.

user@ubuntu:~$ python3 --version
Python 3.8.2

En voor Python 2, simpel weg de commando "Python --version" in.

user@ubuntu:~$ python --version
Python 2.7.12

Bij nieuwere versies van Linux wordt Python 2 echter steeds meer weggelaten, dus het kan zijn dat je een foutmelding krijgt.

Als u enkel "Python" of "Python3" ingeeft als commando, dan komt u terecht in de interactieve modus van Python. Om de interactieve modus te stoppen, gebruikt u het commando "exit()" of sluit u simpelweg de terminal af.

Python Installeren[bewerken]

Windows[bewerken]

Op de website van Python kunt u de laatste versie van Python vinden. https://www.python.org/downloads/

Download het instalatie bestand, voer het uit en volg de instructies. U kunt Python in principe installeren in een map naar keuze, maar het beste is om de map te gebruiken die wordt geadviseerd tijdens de installatie. Als de optie er is om python toe te voegen aan PATH, vink die dan aan.

Om Python vanaf de command line interface te starten, moet de locatie van de Python map in de omgevingsvariabele PATH worden gezet. Dit is nodig want anders zal Python niet worden gevonden. Als je dit niet werd gevraagd tijdens de installatie of het werkt niet, kunt je het nadien nog toevoegen. Ga hiervoor naar Start, druk op de rechtermuisknop op "Deze Computer" en kies in het menu voor "Eigenschappen". Ga naar boven op het tabblad "Geavanceerd" en kies voor "Omgevingsvariabelen". Zoek in het tweede menu "Systeemvariabelen" naar de variabele "path" of "PATH". Dubbelklik hierop en zet in de "Waarde van variabele" de locatie van Python, bijvoorbeeld "C:/Python".

macOS[bewerken]

Op de website van Python kunt u de laatste versie van Python vinden. https://www.python.org/downloads/

Download het instalatie bestand, voer het uit en volg de instructies.

Linux[bewerken]

Gebruik de apt-get commando in Terminal om de laatste versie van Python 3 the installeren.

sudo apt-get install python3

Het kan zijn dat Terminal vraagt om je passwoord in te voeren.

Voor de laatste versie Python 2, gebruik het volgende commando.

sudo apt-get install python

Python updaten[bewerken]

Windows[bewerken]

Om Python te updaten in Windows volstaat het om de stappen van een nieuwe installatie te herhalen.

macOS[bewerken]

Om Python op de mac te updaten volstaat het om het gewoon opnieuw te installeren.

Op de website van Python kunt u de laatste versie van Python vinden. https://www.python.org/downloads/

Download het instalatie bestand, voer het uit en volg de instructies.

Het is mogelijk om meerdere subversies tegelijkertijd geïnstalleerd te hebben. Wanneer u dan de commando Python3 of Python2 zal het de meest recente subversie van Python gebruiken, bijvoorbeeld respectievelijk Python 3.8 en Python 2.7.

Linux[bewerken]

Om python te updaten volstaat het om volgende commando te gebruiken in Terminal.

sudo apt-get upgrade python3

Python verwijderen[bewerken]

Windows[bewerken]

Python kunt u verwijderen, zoals alle andere apps, door op de start-knop te drukken en daarna op de knop voor instellingen of settings te drukken(te herkennen aan het tandwielsymbool). U krijgt dan een nieuw scherm waar je kunt doorklikken naar Apps. U krijgt dan een lijst te zien van geïnstalleerde apps op alfabetische volgorde. Zoek in de lijst naar Python(het kan zijn dat er meerdere apps zijn die Python heten). Vervolgens klik op de app en u krijgt een extra knop verwijderen of uninstall. Klik op die knop en bevestig nogmaals dat u Python wilt verwijderen.

macOS[bewerken]

Bij macOS volstaat het om de installatie op te zoeken in de map "apps", waar al de applicaties worden bewaard, en het vervolgens te slepen naar de prullemand.

Linux[bewerken]

Hoewel het mogelijk is om Python te verwijderen uit Linux, is het sterk afgeraden om dit te doen. Python wordt namelijk gebruikt door verschillende toepassing en onderdelen van het besturingssysteem. Door Python te verwijderen wordt het besturingsysteem wellicht onbruikbaar.


Hulpmiddelen

Nu dat u Python hebt geïnstalleerd moet u ook nog een tekstverwerker kiezen waarmee u uw Python programma's zal schrijven. U kunt kiezen tussen:

  1. Simpele tekstverwerkers die meegeleverd zijn met uw besturingsssyteem.
  2. Wat geavanceerdere tekstverwerkers die wat meer helpen bij het schrijven van de programmacode.
  3. Een IDE ofwel een Integrated Development Environment, een tekstverweker die véél kan helpen bij schrijven van programmacode.
  4. Of IDLE(Integrated Development and Learning Environment), een IDE die meegeleverd wordt met Python.

Simpele tekstverwerkers[bewerken]

Ieder besturingssysteem komt met een eigen simpele tekstverwerker die je kunt gebruiken om een Python programma te schrijven. Je opent dan één van onderstaande tekstverwerkers, schrijft je code in de tekstverwerker en bewaart het met een zelfgekozen bestandsnaam met als extensie .py, bijvoorbeeld script.py.

Besturingssysteem Tekstverwerker
Windows Kladblok
macOS Teksteditor
Ubuntu Text Editor

Het nadeel is wel dat deze tekstverwerkers niet helpen met het ontwikkelen van je Python programma, maar ze volstaan om simpele scripts te maken en te bewaren. Ze zijn dus uitermate geschikt om je eerste Python programma's te maken en om te testen, zonder extra software te installeren en het te leren gebruiken.

Geavanceerdere tekstverwerkers[bewerken]

Naast simpele tekstverwerkers, zijn er ook wat meer geavanceerde tekstverwerkers. Deze helpen al wat meer met het programmeren van Python programma's door bijvoorbeeld het Python script document op te maken met kleuren waardoor het leesbaarder wordt.

Naam Commentaar Ondersteunt Externe Link
Notepad++ Open-Source Windows https://notepad-plus-plus.org

Deze tekstverwerkers zijn al betere dan gewone tekstverwerkers, en zijn handig voor wat uitgebreidere Python programma's maar zijn niet geschikt voor grotere projecten.

IDE[bewerken]

IDE staat voor Integrated Development Environment ofwel geïntegereerde ontwikkelingsomgeving. Het idee achter een IDE is dat er zoveel mogelijk functionaliteiten in één app worden verwerkt die u kunnen helpen met het ontwikkelen van applicaties. Ze kunnen bijvoorbeeld suggesties doen voor de code die je aan het schrijven bent of preventief mogelijke fouten opsporen. Je kunt ook je Python script starten vanuit een IDE. Het is dus zeker aan te raden om een IDE te gebruiken, zeker wanneer je al wat complexere Python programma's schrijft.

Naam Ondersteunt Externe Link Commentaar
Atom Windows, macOS, Linux https://atom.io/ Open-source
Pycharm Windows, macOS, Linux https://www.jetbrains.com/pycharm/ IDE specifiek voor Python. Er is zowel een betalende professionele versie als een betalende standaard versie als een geheel gratis versie.
Visual Studio Code Windows, macOS, Linux https://code.visualstudio.com

IDLE[bewerken]

IDLE staat voor Integrated Development and Learning Environment en is een soort van IDE die vaak meegeleverd wordt met Python. Bij Windows en macOS volstaat het om gewoon IDLE op te zoeken met de zoekfunctie van het besturingssysteem of te zoeken in de map van geïnstalleerde applicaties.

Bij andere besturingssystemen kan het zijn dat u dit zelf moet installeren zoals bijvoorbeeld bij Ubuntu. Je kunt het dan installeren door in de Terminal het volgende commando in te voeren.

sudo apt-get install idle3

Als IDLE is geïnstalleerd kun je het opstarten door het commando idle uit te voeren in Terminal of door het op te zoeken met de zoekfunctie van het besturingssysteem.

Wanneer IDLE wordt opgestart krijgt u een venster te zien waarin Python draait in de interactieve modus. Een modus waarbij u interactief python code kunt schrijven terwijl Python draait. In de normale script modus voert Python een voorgeschreven script uit en stopt het met draaien waneer het script is voltooid. Het is natuurlijk ook mogelijk om voorgeschreven scripts in de interactieve modus van IDLE te draaien.


Eerste programma

In dit hoofdstuk gaan we ons eerste Python programma schrijven. Python programma's zijn eigenlijk gewone tekstbestanden die met een standaard tekstverwerker geschreven kunnen worden. Voor u verder gaat in dit hoofdstuk, controleer of u Python hebt geïnstalleerd zoals omschreven in het hoofdstuk Installatie en u een geschikte tekstverwerker heeft.

Eerste programma[bewerken]

Laten we ons eerste programma schrijven. Maak een bestand aan met de naam hallo.py in een tekstverwerker naar keuze met als inhoud:

print("Hello, world!")

Nu dat we ons eerste programma hebben geschreven, moeten we het ook nog draaiende krijgen op onze computer.

Eerste programma laten draaien[bewerken]

De manier om Python programma te laten draaien is grotendeels hetzelfde voor de verschillende besturingssystemen:

  • Start de door u gekozen tekstverwerker.
  • Kopiëer of typ het programma in de tekstverwerker.
  • Kies een map of maak een map aan waar u het tekstbestand met de programmacode wilt bewaren.
  • Bewaar het bestand met de programmacode als hallo.py.
  • Open de command line interface van het besturingsysteem.
  • Navigeer via de command line interface naar de map waar je het bestand hebt bewaard.
  • Voer het commando "python hallo.py" uit.

Windows[bewerken]

  • Start de door u gekozen tekstverwerker.
  • Kopiëer of typ het programma in de tekstverwerker.
  • Kies een map of maak een map aan waar u het tekstbestand met de programmacode wilt bewaren, bijvoorbeeld C:\pythonoefeningen.
  • Bewaar het bestand met de programmacode als hallo.py.
  • Open command prompt(soms ook MS-DOS prompt of CMD genoemd). (Dit kan eventueel via: Start > Uitvoeren... > CMD > enter)
  • Navigeer via de command prompt naar de map waar je het bestand hebt bewaard.
 C:\> cd \pythonoefeningen
  • Voer het commando "python hallo.py" uit.
 C:\pythonoefeningen> python hallo.py

Indien dit niet lukt, controleer of uw PATH omgevingsvariabele de Python installatiemap bevat of dat u de meest recente versie van Python hebt geïnstalleerd. Lees desnoods opnieuw de instructies in het hoofdstuk Installatie.

MacOS[bewerken]

  • Start de door u gekozen tekstverwerker.
  • Kopiëer of typ het programma in de tekstverwerker.
  • Kies een map of maak een map aan waar u het tekstbestand met de programmacode wilt bewaren, bijvoorbeeld /home/jouwaccountnaam/pythonoefeningen.
  • Bewaar het bestand met de programmacode als hallo.py.
  • Open de app Terminal
  • Navigeer via Terminal naar de map waar je het bestand hebt bewaard.
 $ cd ~/pythonoefeningen
  • Voer het commando "python3 hallo.py" uit.(Als je gewoon "Python" ingeeft als commando, wordt de oude Python 2 gestart door MacOS, daarom gebruiken we bij MacOS "python3")
 $ python3 hallo.py

Linux[bewerken]

  • Start de door u gekozen tekstverwerker.
  • Kopiëer of typ het programma in de tekstverwerker.
  • Kies een map of maak een map aan waar u het tekstbestand met de programmacode wilt bewaren, bijvoorbeeld /home/jouwaccountnaam/pythonoefeningen. Als je dit wilt doen via een command-line kun je zo tewerk gaan:
 $ mkdir ~/pythonoefeningen
 $ cd ~/pythonoefeningen
  • Bewaar het bestand met de programmacode als hallo.py.
  • Open de app Terminal
  • Navigeer via Terminal naar de map waar je het bestand hebt bewaard.
 $ cd ~/pythonoefeningen
  • Voer het commando "python3 hallo.py" uit.(Als je gewoon "python" ingeeft als commando, wordt de oude Python 2 gestart door Linux, daarom gebruiken we bij Linux "python3")
 $ python3 hallo.py

Resultaat[bewerken]

Het programma zou het volgende moeten laten zien op het scherm.

Hello, world!

Proficiat! Je bent reeds goed op weg om een Python programmeur te worden.

Uitleg over het programma[bewerken]

Laten we nog eens naar ons eerste programma kijken.

Python-code: Eerste programma

print("Hello, world!")

Het eerste woord dat we zien is print. print is wat ze een ingebouwde functie noemen en doet wat zijn naam suggereert: iets printen op het scherm. Zelf code schrijven om tekst op het scherm te tonen is haast onbegonnen werk, zeker voor een beginner. Daarom komt Python met een voorgeschreven code die u kunt oproepen en laten uitvoeren om Python bepaalde taken te laten uitvoeren. Code die we kunnen oproepen en hergebruiken noemen we een functie. Functies die meegeleverd worden met Python worden daardoor ingebouwde functies genoemd. Functies kunt u zo vaak gebruiken als u wilt. In een later hoofdstuk zult u ook zien dat u uw eigen functies kunt schrijven.

Om een functie op te roepen volstaat het om de naam te schrijven, dus in dit geval print. Om de functie te laten uitvoeren moet u de haakjes er aan toevoegen (), die haakjes geven dus aan Python de instructie om de functie uit te voeren. Tussen de haakjes geeft u wat ze argumenten noemen. Een argument is eigenlijk data die je kunt meegeven aan een functie zodat de functie er iets mee kan doen, bij print() geven we dus data mee die het kan printen op het scherm. We hebben als argument tekst meegegeven tussen dubbele aanhalingstekens "". De aanhalingstekens geven aan dat we een stuk tekst willen laten printen op het scherm. Hier wordt verder op ingegaan in een volgend hoofdstuk.

Commentaar[bewerken]

Iets wat héél belangrijk is in programmeren, is om uw code te voorzien van commentaar waarmee u uitlegt wat u doet in uw code. Commentaar aan uw code geven kunt u bijvoorbeeld als volgt doen.

Python-code: Eerste programma met commentaar

#  Volgend stukje code print "Hello, world!" op het scherm.
print("Hello, world!")

Commentaar geven doet u door een regel te beginnen met het #-teken, liefst gevolgd door twee spaties en dan gevolgd door uw commentaar. Alles wat na het #-teken komt wordt gezien als commentaar. Pas als u een nieuwe regel begint zal Python er terug vanuit gaan dat u programmacode aan het schrijven bent, tenzij u ook die regel begint met een #-teken. Commentaar aan code geven is niet altijd nodig. Neem nu bovenstaand voorbeeld, iemand die programmeert in Python zal meteen begrijpen wat u wilt doen met uw stukje code. Maar zodra u complexere code begint te schrijven kan het niet altijd even duidelijk zijn, dan kunt u uw code beter voorzien van commentaar. Dit is handig voor andere mensen die uw code bekijken, maar ook voor uzelf. Het kan namelijk zijn dat u code hebt geschreven en dat u na verloop van tijd zelf niet meer begrijpt wat uw code precies doet. Commentaar kan dan helpen om het duidelijk te houden.

Oefeningen[bewerken]

  • Pas het hallo.py programma aan om hallo te zeggen tegen een historisch leider naar keuze (of tegen Ada Lovelace).
  • Verander het programma zodat het na de begroeting vraagt: "Hoe ben je hier terecht gekomen?".

Oplossingen


Variabelen en gegevens

In dit hoofdstuk wordt er bersproken wat variabelen zijn en welk soort gegevens of data ze kunnen bevatten.

Wat is een variabele?[bewerken]

Een variabele is een verwijzing naar een plaats in het geheugen van de computer waar je gegevens hebt opgeslagen. Met die gegevens kun je allerlei dingen doen. Je kunt de gegevens gebruiken en hergebruiken om bijvoorbeeld er bewerkingen mee te doen, zoals een wiskundige berekening. Je kunt de gegevens ook aanpassen, vervangen en verwijderen.

Variabalen kunnen verwijzen naar allerlei soorten data, van simpele tekst en getallen, tot complexere data met allerlei eigenschappen. Om te kunnen werken met variabelen geven we ze een naam, als we dan iets willen doen met de gegevens waarnaar de variabele verwijst roepen we gewoon zijn naam op.

Een variabele gebruiken[bewerken]

We bekijken een eerste voorbeeld van een programma dat een variabele gebruikt. In het volgend voorbeeld maken we een variabele aan genaamd name en zetten we er wat gegevens in.

Python-code: Variabele

name = 'Ada Lovelace'
print("Tot ziens, " + name + '!')

Output:

Tot ziens, Ada Lovelace!

Waarom staan er apostroffen (') rond Ada's naam, en aanhalingstekens (") rond "Tot ziens"? Beide tekens worden gebruikt om een tekenreeks af te bakenen. Die tekenreeks wordt hier in de variabele met de naam name gestopt. In Python mogen we zowel ' als " gebruiken om tekenreeksen af te bakenen, maar u mag ze niet zomaar met elkaar combineren. Wat bijvoorbeeld verboden is, is een tekenreeks zoals deze: 'Begint met apostrof en eindigt met een aanhalingsteken". Bovendien zien we hier ook hoe Python toestaat om twee tekenreeksen aan elkaar vast te plakken: gebruik gewoon een plusteken (+) om de reeksen samen te voegen.

Invoer van gegevens[bewerken]

Een variabele kan ook gegevens bevatten die van buiten het programma komen. Eén van de manieren om gegevens van buiten het programma te krijgen is via het toetsenbord, daarvoor kun je de functie input() gebruiken.

Python-code: input()

print("Voer uw naam in alstublieft:")
name = input()
print("Hallo " + name + "!")

Output:

Voer uw naam in alstublieft:
Jan
Hallo Jan!

input() is net zoals print() een ingebouwde functie. Het vraagt naar invoer via het toestenbord van jou, de gebruiker van het programma. Telkens als je het programma uitvoert kun je een andere naam invoeren. Die naam komt in de variabele met de naam name terecht en kan verderop in het programma gebruikt worden, bijvoorbeeld om een welkomstbericht op het scherm af te drukken. Bovenstaand stukje code kan nog iets netter worden geschreven. Net zoals bij print(), kun je bij input() een argument meegeven.

Python-code: input()

name = input("Voer uw naam in alstublieft: ")
print("Hallo " + name + "!")

Output:

Voer uw naam in alstublieft: Jan
Hallo Jan!

Nu zie je wel dat wanneer je tekst invoert dat het rechtstreeks achter "Voer uw naam in alstublieft:" komt in tegenstelling tot print(). Dit komt omdat als u print() gebruikt er na de tekst automatisch een nieuwe regel wordt begonnen. Bij input() gebeurt dit ook, maar pas nadat u tekst hebt ingevoerd, daardoor komt de invoer op dezelfde regel als "Voer uw naam in alstublieft:" .

Getallen[bewerken]

Je kunt ook getallen in variabelen stoppen.

Python-code: Getallen

x = 9
y = 5.2

print(x)
print(y)

Output:

9
5.2

Tekst en getallen[bewerken]

Je kunt tekst en getallen combineren en samen gebruiken, maar niet zomaar. In het volgend voorbeeld zullen we een getal samenvoegen aan een tekst.

Python-code: Getallen

age = 31

print("Hallo, ik ben " + age + ".")

Output:

Traceback (most recent call last):
  File "klad.py", line 3, in <module>
    print("Hallo, ik ben " + age  + ".")
TypeError: can only concatenate str (not "int") to str

We krijgen een error of in het Nederlands een fout en meer specifiek een TypeError. Wanneer je tekst wilt combineren met een getal, wordt er eigenlijk meer tekst verwacht. Om dit probleem te verhelpen kunnen we een functie gebruiken, namelijk de functie str(). Met de functie str() kunnen we getallen laten omzetten in tekst. Deze functie heeft een parameter waar je een variable kunt meegeven als argument aan de functie. Vervolgens zet de functie het om in tekst en geeft het terug zodat je het kunt gebruiken in je programma. Je gebruikt het bijvoorbeeld als volgt.

Python-code: Getallen

age = 31

print("Hallo, ik ben " + str(age) + ".")

Output:

Hallo, ik ben 31.

Naamgeving[bewerken]

Je bent vrij te kiezen welke naam je geeft aan een variabele, maar je moet je wel aan een aantal regels houden:

  • Je mag letters, getallen en underscores(_) gebruiken in de naam voor je variabelen.
  • De variabele naam mag echter niet beginnen met een getal, dus 9number mag niet maar wel number9.
  • Speciale tekens zoals @ en spaties kunnen ook niet worden gebruikt.
  • Python heeft ook een aantal gereserveerde woorden die niet mogen worden gebruikt als variabelnaam.

Daarnaast geeft Python nog een paar richtlijnen:

  • De namen kunnen geschreven worden in lowercase (kleine letters) met underscores tussen woorden. Dus bijvoorbeeld variable_name en dus niet VariableName.
  • Geef liefst Engelstalige namen aan je variabelen. Je moet er altijd vanuit gaan dat je code kan worden gelezen door iemand die geen Nederlands spreekt. Gebruik dus enkel Nederlandstalige namen voor je variabelen als je absoluut zeker bent dat niemand anders de code gaat lezen.
  • Gebruik namen die de variabelen goed omschrijven. Gebruik nooit de letters 'O'(hoofdletter o), 'l'(kleineletter l) of 'I'(hoofletter i) aangezien deze soms kunnen worden verward met 1(één) of 0(nul).

Bovenstaande richtlijnen zijn niet verplicht, dus als je de regels niet volgt zal het script nog steeds werken. Het kan wel zijn dat je IDE een waarschuwing geeft.

Datatypes[bewerken]

Tot nu toe hebben we twee soorten gegevens gezien, tekst en getallen. Het datatype voor tekst noemt men in Python str ofwel string. Voor getallen zijn er drie types, namelijk int(integer), float en complex. Hieronder is een lijst gegeven van alle ingebouwde datatypes. Er wordt in de volgende hoofdstukken dieper op ingegaan wat die datatypes zijn en hoe ze te gebruiken.

Datatype Soort Uitleg
str(string) Tekst
int Numeriek
float Numeriek
complex Numeriek
list Reeks
tuple Reeks
range Reeks
dict(dictionary) Map
set Set
frozenset Set
bool Boolean
bytes Binair
bytearray Binair
memoryview Binair

Type Hinting[bewerken]

In tegenstelling tot vele andere programeertalen kun je in Python niet expliciet zeggen welk soort datatype een variabele moet bevatten. Een variabele kan dus zowel een str als een int zijn, wat toch wel twee verschillende soorten datatypes zijn. Dit kan serieuze gevolgen hebben als je bijvoorbeeld bij een variabele een int waarde geeft, om later in je script het als een str te gebruiken of omgekeerd.

Stel we hebben de variabele day, month, year om in onze code een datum te omschrijven. Bij day en year kun je er redelijk van uitgaan dat we getallen gaan gebruiken, maar wat met month? Gaan we 4 gebruiken of het woord april? Misschien heb je de rest van je code zo geschreven dat het eigenlijk niets uitmaakt, maar misschien ook niet. Als het toch een verschil zou uitmaken kun je type hinting gebruiken. Bijvoorbeeld als volgt:

Python-code: Type hinting

day: int = 21
month: str = "april"
year: int = 2020

Type hinting doe je door de naam van de variable te schrijven, gevolgd door een dubbele punt(:), met daarachter het verwachte datatype. Door aan Type hinting te doen geef je, zoals de naam ook aangeeft, enkel een hint van wat het datatype zou moeten zijn van de waarde die we in een variabele stoppen. We kunnen nog steeds een ander datatype in onze variabele stoppen. Type hinting is vooral handig wanneer we het gebruiken in combinatie met een IDE, die kunnen dan tijdens het programmeren waarschuwingen geven als we een variabele incorrect gebruiken. Het is dus prima mogelijk om het volgende te doen:

Python-code: Type hinting

day: int = "21"
month: str = 4
year: bool = 2020

Het script zal nog steeds werken wanneer we andere soorten datatypes in de variabelen stoppen dan er wordt aangegeven door de hint. Natuurlijk als we later in het script de variabelen gebruiken op een manier dat niet passen met de datatypes kan Python een Error geven.

Type hinting is redelijk nieuw in Python en wordt pas ondersteund vanaf Python 3.5, houd er dus rekening mee dat dit niet werkt in oudere versies van Python.

Referenties[bewerken]

Zoals eerder vermeld, verwijst of refereert een variabele naar een plaats in het geheugen van de computer. Om te weten naar welke plaats in het geheugen wordt verwezen kun je de ingebouwde functie id() gebruiken. Bijvoorbeeld als volgt:

Python-code: Getallen

a = 5

print(id(a))

output:

140709229395136

Dit stukje code heeft een variabele a met als waarde 5. Als de we de ingebouwde functie id() gebruiken en het resultaat afdrukken met print() kregen we hier als resultaat 140709229395136. De referentie kan verschillen van computer tot computer (dus houd er rekening mee dat deze code een andere output kan hebben op jouw computer), maar het kan ook veranderen telkens wanneer je het stukje code opnieuw draait. Er zijn echter ook uitzonderingen. Neem nu het volgende stukje code die we twee keer zullen uitvoeren.

Python-code: Getallen

a = 5
b = 1000
c = "Hallo"

print(id(a))
print(id(b))
print(id(c))

eerste ouput:

140709229395136
1920163824560
1920158780784

tweede ouput:

140709229395136
3006775411632
3006775226544

Zoals je kunt zien heeft de variabele a twee keer dezelfde referentie, maar variabele b en c verschillende. Dit komt omdat Python voor sommige waardes standaard een plaats reserveert en altijd dezelfde plaats gebruikt. Terwijl andere variabelen telkens een andere plaats kunnen krijgen. Maar Python gaat hier nog een stapje verder in, met hoe het omgaat met het geheugen van de computer. Als Python merkt dat twee variabelen dezelfde waardes bevat kan het zijn dat, hoewel die variabelen apart gedeclareerd zijn en aparte waardes hebben gekregen, ze toch naar dezelfde plaats in het geheugen verwijzen. Bijvoorbeeld:

Python-code: Getallen

a = 1000
b = 1000
c = "Hallo"
d = "Hallo"

print(id(a))
print(id(b))
print(id(c))
print(id(d))

output:

1896769635248
1896769635248
1896769450160
1896769450160

Zoals je kunt zien hebben variabelen a en b dezelfde refertie net zoals c en d.

Nieuwe functies[bewerken]

  • input()
  • str()


Berekeningen en bewerkingen

Dit hoofdstuk bestaat uit twee delen, namelijk berekeningen en bewerkingen. Bij berekeningen gaan we zien hoe we wiskundige berekeningen kunnen doen met Python. Bij bewerkingen gaan we verder in op strings van het vorige hoofdstuk.

Berekeningen[bewerken]

Wiskundige operatoren[bewerken]

Hier is een lijst van wiskundige commando's van Python.

commando actie voorbeeld
+ optellen 1 + 1 = 2
- aftrekken 4 - 3 = 1
* vermenigvuldigen 2 * 2 = 4
/ delen 6 / 2 = 3
// vloerdeling

(naar beneden afronden)

7 // 2 = 3 (2*3 + 1)
% modulo (rest) 7 % 2 = 1 (2*3 + 1)
** exponent 2 ** 3 = (23) = 8

Een praktisch voorbeeld[bewerken]

In het volgende voorbeeld gaan we Python gebruiken als rekenmachine. En waarom proberen we meteen niet om eens iets nuttigs te maken? We gaan een programma schrijven om onze BMI uit te rekenen. (BMI = Body Mass Index. Voor een gezonde volwassene ligt de BMI tussen 18 en 25. Meer dan 25 betekent dat je aan overgewicht lijdt, minder dan 18 betekent dat je te weinig weegt.) BMI wordt berekend aan de hand van jouw lengte en massa. In formulevorm:

Eenvoudige wiskunde[bewerken]

Python-code: While-lus

print("Geef uw massa in kilogram: ")
massa_kg = int(input())
print("Geef uw lengte in meter: ")
lengte_m = float(input())
bmi = massa_kg / (lengte_m * lengte_m)
print("Uw BMI bedraagt: " + str(bmi) + ".")

Nu kan je van iedereen de BMI berekenen, simpelweg door jouw zelfgeschreven programma uit te voeren!

Dit programma bevat wel al een paar dingen die we nog niet uitgelegd hadden, en daarover gaan de volgende puntjes.

  • int() - deze handige functie zet een tekenreeks om naar een getal. Herinner je je nog dat Python sterk getypeerd is? Python laat niet toe dat we rekenen met tekenreeksen. We kunnen enkel rekenen met getallen. Zelfs als je enkel cijfers intikt, is dat voor Python nog steeds een tekenreeks. int() herkent echter een tekenreeks die enkel uit cijfers bestaat en maakt er een geheel getal van. Een geheel getal is een getal zonder cijfers na de komma.
  • float() - deze handige functie zet een tekenreeks om naar een kommagetal.
  • Het stukje str(lengte_m) in het print statement. Python laat niet zonder meer toe tekenreeksen aan getallen te plakken met het plus-teken. Probeer in het voorbeeldprogramma maar eens de str()

weg te laten. Je zal een foutmelding krijgen. In dit geval moeten we het getal omzetten naar een tekenreeks. Dit is precies wat de str() functie ons biedt.

Bewerkingen[bewerken]

Uitvoer in een mooi formaat[bewerken]

In het vorige programma schreven we nog:

print("Uw BMI bedraagt: " + str(bmi) + ".")

Er zijn een paar mogelijkheden om dit leesbaarder te programmeren. Het eerste probleem is dat we plus-tekens mengen met str-operatoren wat het geheel wat verwarrend maakt. Bovendien wordt het resultaat, een kommagetal, niet zo mooi afgedrukt, zoals blijkt uit de volgende sessie met ons programma.

Geef uw massa in kg: 70
Geef uw lengte in meter: 1.75
Uw BMI bedraagt: 22.857142857142858.

Zoveel cijfers na de komma zijn niet alleen belachelijk, het ziet er ook niet uit. Gelukkig heeft Python een % operator die ons kan helpen. Met de % operator kunnen we een tekenreeks formatteren:

MijnTekenreeks % (arg1, arg2, ...)

Afhankelijk van wat we willen formatteren (tekenreeksen, of getallen, of datums, of ...) moeten we een andere formaatcode hanteren. Formaatcodes worden in een ander deel van dit boek uitgebreid behandeld. Om ons programma te verbeteren hebben we de formaatcode nodig voor kommagetallen. Dit is de %f formaatcode:

print("Uw BMI bedraagt: %.1f." % (bmi))

De %.1f formaatcode zorgt ervoor dat een kommagetal wordt afgedrukt met exact 1 cijfer na de komma. De uitvoer ziet er nu veel beter uit:

Geef uw massa in kg: 70
Geef uw lengte in meter: 1.75
Uw BMI bedraagt: 22.9

Tabs[bewerken]

Tabs worden gebruikt om output (tekst, getallen of cominaties hiervan) op een nette manier op het scherm en/of printer te tonen. We noemen dit proces uitlijnen. Het gebruiken van een tab in Python geeft aan dat je een vast aantal posities in de output wil overslaan, voordat de volgende output wordt weergegeven, dit zodanig dat de output op een vaste positie per regel wordt weergegeven. Python maakt gebruik van vaste tab stops (afstanden). In het onderstaande voorbeeld worden 1 of meerdere tabs gebruikt.

Python-code: Tabs

print("Geen tabs.")
print("\téén tab")
print("\t\ttwee tabs")
print("\t\t\tdrie tabs")

Output:

Geen tabs.
        één tab
                twee tabs
                        drie tabs

Python-code: Tabs

first_name = input("Geef je voornaam\t:")
last_name = input("Geef je achternaam\t:")

Output:

Geef je voornaam        :Geert
Geef je achternaam      :Jansen


Informatie afkomstig van http://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.