Python Cursus. Hoofdstuk 3 - Expressies


Meteen naar de Afsluitende Opgaven over Expressies
Terug naar de cursus pagina

Resultaten tonen

Afdrukken in de console (dat zwarte scherm onderaan), doe je met de 'print' commando. Probeer het maar:

Je kunt verschillende soorten dingen afdrukken:

Probeer het maar eens:

Opgave 3.1 Tekst en getallen samen afdrukken

Klik hier voor de uitwerking.

Data types

Alles heeft een (data)type:

Strings

Een string is een tekst, die bestaat uit nul of meer tekens, omsloten door aanhalingstekens. Je mag dubbele of enkele aanhalingstekens gebruiken. Wat je kiest maakt niet uit, bijvoorbeeld: "appel" is hetzelfde als 'appel'.

Let op: als je code ergens vandaan knip-plakt (bijvoorbeeld uit de sheets van de cursus) dan kan het zijn dat er andere aanhalingstekens gebruikt worden (ronde in plaats van rechte). Python herkent de ronde aanhalingstekens niet.

Opgave 3.2.1 Tekst en aanhalingstekens

Klik hier voor de uitwerking.

Integers

Integers zijn gehele getallen, die positief of negatief (of nul) kunnen zijn.

Als je integers in Python gebruikt, mag je ze niet schrijven met scheiders tussen de veelvouden van 1000 om ze leesbaarder te maken. Je moet het getal 1 miljard dus schrijven als 1000000000 en niet als 1,000,000,000 (de Engelse conventie) of 1.000.000.000.

Opgave 3.2.2 Integers (gehele getallen) gebruiken

Klik hier voor de uitwerking.

Floats

Floats, wat kort is voor "floating-point getallen" ("gebroken getallen"), zijn kommagetallen ("decimale getallen"). Bijvoorbeeld, 3.14159265 is een float. Let op: gebruik een punt in plaats van een komma.

Opgave 3.2.3 Floats (kommagetallen) gebruiken

Klik hier voor de uitwerking.

Expressies

Een expressie is een combinatie van een of meerdere waardes (zoals strings, integers, of floats) met behulp van operatoren, die dan een nieuwe waarde oplevert. Je kunt je expressies dus voorstellen als berekeningen.

Eenvoudige berekeningen

Eenvoudige berekeningen worden gemaakt door twee waardes te combineren met een operator ertussenin. Een aantal voor de hand liggende operatoren zijn:

+   optelling
-   aftrekking
*   vermenigvuldiging
/   deling
**  machtsverheffing
//  integer deling
%   modulo

Hier volgen een paar voorbeelden:

Ik neem aan dat je weet wat deze operatoren voorstellen, behalve misschien de laatste twee: de integer deling en de modulo:

In andere woorden: als ik 14 koekjes heb die ik moet verdelen over 5 kinderen, kan ik ieder kind 2 koekjes geven. Ik heb dan nog 4 koekjes over, omdat ik dan meer kinderen dan koekjes heb. Dus als je 14 deelt door 5 met integer deling, geeft dat 2 (koekjes per kind), terwijl 14 modulo 5 als rest 4 (koekjes in mijn hand) geeft.

Complexe berekeningen

Je mag waardes en operatoren combineren om grotere berekening te maken, net zoals je kunt met geavanceerde rekenmachines. Je mag daarbij haakjes gebruiken om de evaluatievolgorde te bepalen, en je mag die haakjes zelfs nesten. Zonder haakjes zal Python de operatoren evalueren in de volgende volgorde (zoals je op de basisschool geleerd hebt): machtsverheffen, vermenigvuldigen, delen, worteltrekken, optellen, aftrekken.

Opgave 3.3.2.1 Haakjes gebruiken

Klik hier voor de uitwerking.

Complexe berekening uitvoeren

Opgave 3.3.2.2 Aantal seconden per week

Klik hier voor de uitwerking.

String expressies

Een aantal van de genoemde rekenkundige operatoren kunnen voor strings worden gebruikt, maar niet allemaal. Specifiek, je kunt de plus (+) gebruiken om twee strings aan elkaar te "plakken”, en je kunt de ster (*) gebruiken met een string en een integer om een string te maken die een herhaling van de originele string bevat. Zie hier:

Je kunt geen getal optellen bij een string, of twee strings met elkaar vermenigvuldigen. Zulke operatoren zijn niet gedefinieerd, en geven foutmeldingen. Geen van de andere operatoren werkt voor strings.

Opgave 3.3.3 String expressies

Klik hier voor de uitwerking.

Type casting

Soms moet je een data type of waarde veranderen in een ander data type. Bijvoorbeeld, als de gebruiker iets intikt wordt dit altijd tekst gezien, ook al wordt er een getal ingetikt. Wil je daarmee gaan rekenen, dan moet je de ingevoerde string in een int veranderen. Een andere voorbeeld is juist andersom, als je een int tussen tekst wilt printen, dan moet je er eerst een string van maken. Je kunt dat doen met "type casting" functies.

De drie belangrijkste type casting functies zijn:

Dus, met float(3) wordt het geheel getal 3 omgezet in een float (decimaal getal) 3.0. Kijk maar:

Opgave 3.3.4.1 Wisselen tussen gehele en kommagetallen

Klik hier voor de uitwerking.

Tekst en getallen combineren

Als je in een 'print' zowel tekst (strings) als getallen (int) wil combineren, dan kun je de ',' operator gebruiken. Dat is niet altijd handig, want die voegt ook meteen een spatie toe. Als je tekst en getallen wilt combineren in een 'print', zonder dat er een spatie tussen komt dan moet je: 1) de getallen eerst omzetten naar tekst met 'str(...)' 2) de '+' gebruiken in plaats van ',' om tekst aan elkaar te plakken. Bijvoorbeeld: Een getal leeftijd om te zetten naar tekst (oftewel, casten naar een string) doe je zo: Het resultaat is:
'Ik ben 16 jaar oud.'

Opgave 3.3.4.2 Een getal in tekst omzetten

Klik hier voor de uitwerking.

Debuggen

Het opsporen van fouten in je code kan veel tijd kosten en frustratie opleveren.

Er zijn twee soorten fouten:

1) Syntax fout: je tikt iets in dat de interpreter niks mee kan. Bijvoorbeeld, een verkeerd gespelde functienaam. Je krijgt dan een foutmelding.

2) Semantiek fout: je maakt een denkfout. Bijvoorbeeld, je deelt door 4 in plaats van 5. De uitvoer is dan anders dan je verwacht.

Het herkennen van foutmelding helpt je om sneller syntax fouten op te sporen.

Opgave 3.4.1 Verbeter de syntax fout

Als er iets fout zit in code, geeft Python meestal een foutmelding. Dit zijn vaak "syntax fouten”, die aangeven dat er iets fout zit in de vorm van je code.

Kun je de fouten in de volgende regels code vinden? Kopieer de code en verbeter de fouten.

Hier is een ander voorbeeld van een syntax fout. Voer het programma uit en bestudeer de fout die gemeld wordt. Kun je het probleem oplossen?


Runtime error

Naast "syntax fouten" zijn er ook "runtime errors", die aangeven dat je code op zich syntactisch correct lijkt, maar dat er iets fout is gegaan bij de uitvoering ervan.

Een goed voorbeeld is de ZeroDivisionError, die aangeeft dat je probeerde te delen door nul (wat niet mag, zoals je weet). Kijk maar:


Wat je geleerd hebt over Expressies:

In dit hoofdstuk is het volgende besproken:


Meteen naar de Afsluitende Opgaven over Expressies
Terug naar de cursus pagina