# Programmeren in Python/Printversie

Overzicht

## Wat is Python?

Python is een programmeertaal.

## Geschiedenis van Python

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

## Waarvoor wordt Python gebruikt?

Python is een veelzijdige programmeertaal en is ook een 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

Python maakt gebruik van semantisch versioneren zoals 1.0.0 2.7.0 of 3.12.0
'Patches' zijn wijzigingen die fouten corrigeren. 'Mineure' voegen functionaliteit toe zonder vorige versies te breken. 'Majeure' introduceren wijzigingen die niet langer compatibel zijn met voorgaande versies.
De 'Patch' wordt regelmatig achterwege gelaten. Zo spreekt men over Python 2.7 en 3.8 ipv 2.7.1 en 3.8.2
Tot op heden waren er drie 'Majeure' versies van Python. Op het moment van schrijven Python 1 wordt sinds 2000 niet meer ondersteunt en Python 2 niet meer sinds januari 2020. Er wordt van uitgegaan dat u beschikt over Python 3.8 of hoger. Het gebruik van een oudere versie van Python kan problemen veroorzaken bij het uitvoeren van code uit dit boek.

## Externe Links

* (en) Officiële website
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 ervan uit dat u de laatste versie van Python heeft geïnstalleerd.

## Controleren of Python al is geïnstalleerd

Het kan zijn dat Python al geïnstalleerd is op uw computer, omdat sommige besturingssystemen standaard met Python vooraf geï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

Open Command Prompt en typ het commando "Python --version". Als Python geïnstalleerd is kunt u mogelijk het volgende resultaat krijgen.
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, gebruikt u de commando "exit" of sluit u simpelweg de command prompt.
Als Python nog niet is geïnstalleerd, zal Windows de Windows Store openen. Python installaties vanuit de Windows Store kunnen later problemen hebben (PIP). Gelieve daarom Python te installeren volgens de gegeven instructies.

### MacOS

MacOS wordt normaal gezien met al twee versies van Python vooraf geï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.
En voor python 2, simpelweg de commando "Python --version".
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

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.
En voor Python 2, simpel weg de commando "Python --version" in.
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
### Windows

Op de website van Python kunt u de laatste versie van Python vinden. https://www.python.org/downloads/
Download het installatiebestand, 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

Op de website van Python kunt u de laatste versie van Python vinden. https://www.python.org/downloads/
Download het installatiebestand, voer het uit en volg de instructies.

### Linux

Gebruik de apt-get commando in Terminal om de laatste versie van Python 3 the installeren.
Het kan zijn dat Terminal vraagt om je passwoord in te voeren.
Voor de laatste versie Python 2, gebruik het volgende commando.

## Python updaten
### Windows

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

### macOS

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 installatiebestand, 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

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

## Python verwijderen
### Windows

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

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

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:
* Simpele tekstverwerkers die meegeleverd zijn met uw besturingsssyteem.
* Wat geavanceerdere tekstverwerkers die wat meer helpen bij het schrijven van de programmacode.
* Een IDE ofwel een Integrated Development Environment, een tekstverweker die véél kan helpen bij schrijven van programmacode.
* Of IDLE(Integrated Development and Learning Environment), een IDE die meegeleverd wordt met Python.

## Simpele tekstverwerkers

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

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

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

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.
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

Laten we ons eerste programma schrijven. Maak een bestand aan met de naam hallo.py in een tekstverwerker naar keuze met als inhoud:
Nu dat we ons eerste programma hebben geschreven, moeten we het ook nog draaiende krijgen op onze computer.

## Eerste programma laten draaien

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

* 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.
* Voer het commando "python hallo.py" uit.
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

* 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.
* 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")

### Linux

* 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:
* 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.
* 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")

## Resultaat

Het programma zou het volgende moeten laten zien op het scherm.
Proficiat! Je bent reeds goed op weg om een Python programmeur te worden.

## Uitleg over het programma

Laten we nog eens naar ons eerste programma kijken.
Python-code: Eerste programma
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

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
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

* 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 besproken wat variabelen zijn en welk soort gegevens of data ze kunnen bevatten.

## Wat is een variabele?

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.
Variabelen 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

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 er gegevens in.
Python-code: Variabele
Output:
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

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
Output:
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
Output:
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:" .
Merk op dat invoer ook van een API URL call kan komen:
Python-code: input
Output:

## Getallen

Je kunt ook getallen in variabelen stoppen.
Python-code: Getallen
Output:

## Tekst en getallen

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
Output:
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
Output:

## Naamgeving

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 variabelenaam 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 variabelenaam.
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' (kleine letter l) of 'I' (hoofdletter 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

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 |
| 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

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
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
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

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
output:
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, dat we twee keer zullen uitvoeren.
Python-code: Getallen
eerste ouput:
tweede ouput:
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
output:
Zoals je kunt zien hebben variabelen a en b dezelfde referentie, net zoals c en d.

## Nieuwe functies

* 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
### Wiskundige operatoren

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

### Een praktisch voorbeeld

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:
$bmi={\frac {massa_{kg}}{lengte_{m}\times lengte_{m}}}$

### Eenvoudige wiskunde

Python-code: While-lus
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
### Uitvoer in een mooi formaat

In het vorige programma schreven we nog:
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.
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:
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:
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:

### Tabs

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
Output:
Python-code: Tabs
Output: