[7] Variabelen en constanten

Vergelijkbare documenten
Je gaat leren programmeren en een spel bouwen met de programmeertaal Python. Websites zoals YouTube en Instagram zijn gebouwd met Python.

CoderDojo Dendermonde. voor CoderDojo-kids

[8] De ene 1 is de andere niet

[13] Rondjes draaien (loops)

[15] Variabelen in functies (of: een woordje over scope)

[14] Functies. Volg mee via 14_Functies-1.py. We beginnen met een eenvoudig voorbeeldje:

Je gaat leren programmeren in Ruby. En daarna in Ruby een spelletje maken. Websites zoals Twitch en Twitter gemaakt zijn met behulp van Ruby?

Een spoedcursus python

BEGINNER JAVA Inhoudsopgave

DE INTERACTIEVE SHELL

Stroomschema s maken op papier

3. Structuren in de taal

Inhoudsopgave Voorwoord 5 Voordat je begint 6 Wat heb je nodig? 7 De website bij het boek 7 Voor ouders, verzorgers en leraren

PYTHON REEKS 1: BASICS. Mathias Polfliet

Scratch les 3: Quiz! Je eigen spelshow

Java Les 3 Theorie Herhaal structuren

De Sense HAT heeft een temperatuursensor waarmee je de temperatuur. #lees de temperatuur van de sensor en sla op als temp

De Sense HAT heeft een temperatuursensor waarmee je de temperatuur. #lees de temperatuur van de sensor en sla op als temp

Simon de schildpad J van Weert 1

Uitleg: In de bovenstaande oefening zie je in het eerste blokje een LEES en een SCHRIJF opdracht. Dit is nog lesstof uit het tweede trimester.

3. Lineaire vergelijkingen

Small Basic Programmeren Text Console 2

DE ASTRO PI PROGRAMMEREN VOOR MISSION ZERO

Als je de categorie Getal hebt gekozen kunt u in de notatie bepalen hoe het getal moet worden weergegeven.

Vooraf voor de leerkracht

Het programma in dit hoofdstuk vertelt een paar moppen aan de gebruiker.

Dag van GeoGebra zaterdag 19 oktober 2013

Seven segments of Pi

Simon de schildpad J van Weert 1

Scratch in drie uur. Hallo, mijn naam is Minti Mint! Ik ga je uitleggen hoe je je eigen computerspel kunt maken. We gaan een racespel maken!

Figuren in Word. Vul de Wat weet ik al?-kaart in van les 7. Als je nog niet alles weet en kan, zoek het dan op in les 7.

maplev 2010/7/12 14:02 page 15 #17 Nadere detaillering van een aantal zaken van Module 1 Geen,, " ", \, save, read, protect, unprotect

TELEPORTEREN MET VARIABELEN

Numerieke benadering van vierkantwortels

Programmeren: Visual Basic

PHP. Les 4 : Variabelen

Variabelen en statements in ActionScript

Het hele scherm besturen

VAARDIGHEDEN EXCEL. MEETWAARDEN INVULLEN In de figuur hieronder zie je twee keer de ingevoerde meetwaarden, eerst ruw en daarna netjes opgemaakt.

Stroomschema s maken op papier

Project 1 Een discolamp

Scratch Rekenen & programmeren

VBA voor Doe het Zelvers deel 20

Scratch les 1 Rekenen

Cursus Programmeren en Dataverwerking.

Vakgroep CW KAHO Sint-Lieven

Programmeermethoden NA. Week 5: Functies (vervolg)

van PSD naar JavaScript

WELKOM BIJ BOMBERBOT! LES 1: WAT IS PROGRAMMEREN LES 1: WAT IS PROGRAMMEREN WAAR GAAT DEZE LES OVER? INTRODUCTIE

Vaak wil je een code schrijven, waar je verschillende acties uitvoeren voor verschillende beslissingen. Je kan daarbij keuzestructuren gebruiken.

5 FORMULES EN FUNCTIES

Datum. Vraag het bedrag in BEF. Reken om naar EURO. Toon het bedrag in EURO. --- Vraag het bedrag in BEF Reken om naar EURO---

De Sense HAT programmeren Je eerste computerprogramma

PROGRAMMA'S SCHRIJVEN

Verdiepingsmodule Getallen Tweede bijeenkomst maandag 8 april 2013 monica wijers en vincent jonker

10. Mijn eerste programma

OEFENINGEN PYTHON REEKS 1

KENMERKENDE CIJFERS EN BENADERINGSREGELS

Toetsvoorbereiding Informatica HAVO/VWO 5 (T51) Programmeren met Python II. Duur: 70 minuten Datum: sept 2018

ICT Publisher

EXCEL BASIS 2013

code create Welkom! Inspiratie is de basis

Zo gaat jouw kunstwerk er straks uitzien. Of misschien wel heel anders.

Kleuren met getallen Afbeeldingen weergeven

oefening JavaScript - antwoorden

Stroomschema s maken in Word

Relatieve en Absolute adressering


Informatie voor de leerkracht Introductie nieuw concept (pagina 1) Programmeren met Bomberbot (pagina 1)

INHOUDSOPGAVE. Over de auteur, de illustrator en de technische redacteuren 13

Excellerend Kwartaaltip

Variabelen gebruiken in ons programma

Tijdens deze les zien we twee nieuwe programmeerconcepten: herhaling en variabelen.

Handleiding BreakEven Calculator Door Thomas Vulsma

INKIJKEXEMPLAAR WERKEN MET EXCEL. Werken met excel. Hoe? Zo!

Voordat je begint, lees je eerst deze bladzijden. Daarna weet je precies hoe je dit boek gebruikt.

Programmeermethoden NA. Week 5: Functies (vervolg)

De tag aan het begin van het PHPscript is "<?php" aan het einde van het PHPscript gebruik je "?>".

CoderDojo Arnhem Help de Kerstman

Excel reader. Beginner Gemiddeld.

Binair rekenen. unplugged

Een typisch programma in C en C++ bestaat uit een aantal onderdelen:

6.2 VBA Syntax. Inleiding Visual Basic

Inhoudsopgave Voorwoord 11 Nieuwsbrief 11 Introductie Visual Steps 12 Wat heeft u nodig? 12 Uw voorkennis 13 Hoe werkt u met dit boek?

Blok 1 Herhalingstoets

Programmeren op ruitjespapier

Een topprogrammeur in het OO programmeren is Graig Larman. Hij bedacht de volgende zin:

Weet jij een paar leuke lijstjes? Denk bijvoorbeeld aan alle kinderen in je klas of al je vriendjes of vriendinnetjes.

Projecten in scratch!

VAN HET PROGRAMMEREN. Inleiding

Les 1: Een rampenwijzer maken.

Rekenen: getallen en ordening. Getalbegrip: groter dan, kleiner dan

APP INVENTOR BEGINNER

Minder bekende functies in Excel

SLIMSTAMPEN HANDLEIDING

Transcriptie:

[7] Variabelen en constanten We gaan een eenvoudig programma schrijven waarbij we reclame maken voor CoderDojo Dendermonde. Volg mee via 07_VariabelenConstanten.py Dit is wat er moet verschijnen op het scherm op het einde van het programma: We verwachten je bij CoderDojo Dendermonde! De volgende sessie gaat door op zaterdag 4 april in de jeugddienst aan de achterkant van de bib (Dendermonde). We verwachten 36 kids van 7 tot 16 jaar (dat zijn 10 verschillende leeftijden!) Afspraak om 10 uur! Natuurlijk is dit een fluitje van een cent als we gewoon de 5 bovenstaande regels via een print-commando op het scherm laten verschijnen. Maar zo makkelijk gaan we ons er niet van af maken! Als we gewoon de 5 regeltjes tekst in een programma zouden steken, zouden we ons programma elke keer moeten aanpassen als er een nieuwe sessie is. Laten we even op zoek gaan naar de elementen in de tekst die mogelijk kunnen veranderen, en hoe waarschijnlijk het is dat ze veranderen: We verwachten je bij CoderDojo Dendermonde! De volgende sessie gaat door op zaterdag 4 april in de jeugddienst aan de achterkant van de bib (Dendermonde). We verwachten 36 kids van 7 tot 16 jaar (dat zijn 10 verschillende leeftijden!) Afspraak om 10 uur! Een aantal elementen is in het rood aangeduid. Dit zijn elementen waarvan we denken dat ze niet erg vaak gaan veranderen, maar het is wel mogelijk. De naam van de stad bijvoorbeeld (en die komt 2 keer voor), als we ons programma willen doorgeven aan een andere CoderDojo-organisatie. Of de locatie die is al een keer veranderd (we zaten vroeger in drukkerij Roose). En het aantal verschillende leeftijden dat aanwezig gaat zijn (alle leeftijden van 7 tot en met 16 jaar). En ook het beginuur gaat niet snel wijzigen, maar het kan wel. Het aantal verschillende leeftijden is in het blauw aangeduid, omdat dit een berekende waarde is: als de leeftijdsgrenzen wijzigen, moet deze waarde ook mee wijzigen. Een aantal elementen is in het groen aangeduid. Dit zijn de elementen waarvan we denken dat ze veel sneller gaan wijzigen. Het aantal ingeschreven kinderen per sessie, en de datum van de volgende sessie. Deze waarden gaan we niet in onze programmacode opnemen, om te vermijden dat we elke maand ons programma moeten aanpassen. In de plaats daarvan gaan we die waarden vragen aan de gebruiker, voor we ons tekstje laten zien. We gaan in ons programma intensief gebruik maken van variabelen. Variabelen zijn een soort kleine doosjes waar we een waarde kunnen insteken, en die op elk moment weer kunnen uithalen. Let op, de naam die je kiest voor je variabele mag geen Python-commando zijn. Je mag je variabele dus niet bv. print noemen. Python [7] Variabelen en constanten versie 9/03/2015 1/5

Om een variabele te definiëren kiezen we een naam, en kennen we de waarde toe aan de variabele door er een = teken tussen te zetten. Zo dus: naam = 'Bart' Voeren we even daarna volgende regel uit: print('hallo', naam) dan verschijnt op ons scherm: Hallo Bart De variabele naam is tijdens de uitvoering van het programma dus vervangen door zijn inhoud, zijnde Bart. De inhoud van een variabele kan overschreven worden. Bekijk volgende code: naam = 'Jan' naam = 'Lotte' print('hoi', naam) Wat zal er verschijnen, denk je? Dit: Hoi Lotte De variabele naam werd eerst gevuld met de inhoud Jan, en werd direct daarna overschreven met Lotte. Enkel de laatste naam blijft bewaard in de variabele. Soms willen we niet dat de inhoud van een variabele kan overschreven worden in de programmacode. Als we bv. een variabele PI definiëren: PI = 3.14159265358979 dan is het niet de bedoeling dat PI in de loop van het programma wordt vervangen door een ander getal. PI is dus eigenlijk geen variabele maar een constante. Let er trouwens op dat we in Python komma-getallen met een punt schrijven. Dus: 3.14, niet 3,14. Andere programmeertalen hebben manieren om constanten te definiëren, zodat ze nooit meer kunnen overschreven worden. Python heeft dat jammer genoeg niet. Het is dus niet mogelijk om in Python een variabele te definiëren die niet meer kan overschreven worden. Opletten is dus de boodschap. Om visueel duidelijk te maken wat er een variabele is en wat er een constante is, is het een goede gewoonte om namen van constanten in HOOFDLETTERS te schrijven. Dat is geen verplichting, en dat verandert niets aan de manier van werken, maar het is een goede gewoonte waarmee we duidelijk maken dat een bepaalde variabele nooit zal / mag veranderen. Python [7] Variabelen en constanten versie 9/03/2015 2/5

Goed! Terug naar ons programma om reclame te maken voor CoderDojo. We bepalen nu welke variabelen we gaan gebruiken, en of ze constant gaan zijn (en we ze dus in hoofdletters schrijven), of ze variabel gaan zijn, of als het berekende waarden zijn. volgendedatum aantalkinderen STAD_NAAM LOCATIE MIN_LEEFTIJD MAX_LEEFTIJD STARTUUR aantalleeftijden We beginnen ons programma met het definiëren van onze constanten STAD_NAAM = 'Dendermonde' LOCATIE = 'de jeugddienst aan de achterkant van de bib' MIN_LEEFTIJD = 7 MAX_LEEFTIJD = 16 STARTUUR = 10 Nu we de minimum leeftijd en de maximum leeftijd kennen, kunnen we het aantal leeftijden berekenen. Dat is de maximum leeftijd min de minimum leeftijd, en dan doen we daar eentje bij. aantalleeftijden = MAX_LEEFTIJD - MIN_LEEFTIJD + 1 Tenslotte moeten we nog een aantal dingen vragen aan onze gebruiker van ons programma. Dat doen we met het input-commando: volgendedatum = input('geef de volgende datum in: ') aantalkinderen = input('hoeveel kinderen zijn er ingeschreven voor de volgende sessie? ') Het programma zal nu even stoppen om te vragen wat de volgende datum is en hoeveel kinderen er ingeschreven zijn. Belangrijke opmerking: Je mag de schrijfwijze van je variabele-namen volledig zelf kiezen, maar eens je iets gekozen hebt, moet je je er wel aan houden. Hoofdletters doen er toe in Python! Als we dus aantalkinderen bepaald hebben als variabele, dan is dat iets anders dan AantalKinderen, of aantalkinderen, of AANTALKINDEREN. Nu we alle variabelen hebben, is het tijd om de tekst weer te geven. Dat kunnen we bv. doen door in een print-commando de tekst op te knippen in verschillende stukken, en met komma s de tekst-fragmenten en de variabelen aan elkaar te plakken. print('we verwachten je bij CoderDojo', STAD_NAAM, '! ') print('de volgende sessie gaat door op zaterdag', volgendedatum, 'in', LOCATIE, '(', STAD_NAAM, ').') print('we verwachten', aantalkinderen, 'kids van', MIN_LEEFTIJD, 'tot', MAX_LEEFTIJD, 'jaar (dat zijn', aantalleeftijden, 'verschillende leeftijden!)') print('afspraak om', STARTUUR, 'uur!') Python [7] Variabelen en constanten versie 9/03/2015 3/5

Ons programma is klaar om uit te voeren. En? Werkt alles? En probeer nu eens de variabelen te veranderen, en voer het programma dan opnieuw uit. Als je het lastig vindt om je tekst op te delen in stukken, bestaat er nog een andere manier om variabelen op te nemen in een tekst. Het bovenstaande stuk code kunnen we ook zo schrijven: print('''we verwachten je bij CoderDojo %s! De volgende sessie gaat door op %s in %s (%s). We verwachten %s kids van %s tot %s jaar (dat zijn %s verschillende leeftijden!) Afspraak om %s uur!''' % (STAD_NAAM, volgendedatum, LOCATIE, STAD_NAAM, aantalkinderen, MIN_LEEFTIJD, MAX_LEEFTIJD, aantalleeftijden, STARTUUR)) Hierbij hebben we 2 nieuwe dingen gedaan: We hebben slechts één print-commando gebruikt, in plaats van een commando voor elke regel. Om een lang stuk tekst te maken van meerdere regels laat je de tekst beginnen en eindigen met 3 enkele quotes ('''). Het tweede wat we gedaan hebben, is plaatshouders voorzien voor waar de variabelen moeten komen. Dit doen we door de %s notatie. Overal waar een %s staat, moet er een variabele komen. De variabelen worden achteraf toegevoegd door na de string een %-teken te zetten en vervolgens alle variabelen op te lijsten tussen haakjes. Om dat laatste beter te snappen krijg je hier nog een eenvoudiger voorbeeld: print('mijn naam is %s en ik ben %s jaar. ' % (naam, leeftijd)) Als je deze code uitvoert krijg je bv.: Mijn naam is Bert en ik ben 11 jaar. Lege variabelen: None Soms willen we een variabele initialiseren. Dat wil zeggen dat we er in ons programma voor zorgen dat een variabele bestaat, zodat we later in het programma de variabele bijvoorbeeld in een vergelijking kunnen gebruiken. Als we een variabele maken in Python, moeten we aan Python vertellen wat de inhoud van die variabele is. Maar soms willen we dat onze variabele voorlopig nog een leeg doosje is. We bepalen dus nog geen waarde. Soms is het niet moeilijk om te bedenken welke waarde we er dan moeten aan geven. Als we bv. weten dat onze variabele een tekst wordt, kunnen we een lege tekst in de variabele steken. Dat doen we door de variabele gelijk te stellen aan '' (= 2 quote-tekentjes). Of een leeg getal kunnen we gelijk stellen aan 0. Maar wat nu als we echt nog totaal geen idee hebben van de soort waarde die in onze variabele gaat terecht komen? Dan kunnen we het speciale Python-keyword None gebruiken. Dan maakt Python echt een volledig lege variabele aan, waar nog niets van inhoud in zit. Python [7] Variabelen en constanten versie 9/03/2015 4/5

Enkele voorbeelden: leeggetal = 0 legetekst = '' legevariabele = None Er zit nog veel meer in variabelen Wat je op deze leerfiche geleerd hebt is nog maar het topje van de ijsberg als het op variabelen aankomt. Variabelen worden pas echt interessant als ze dynamisch berekend worden (bv. het aantal dagen tussen vandaag en de volgende CoderDojo-sessie) en als we er complexe bewerkingen mee doen. Of als we beslissingen laten afhangen van de inhoud van variabelen ( Als de leeftijd kleiner is dan 11, doe dan ). Wat nog ontbreekt in ons programma is invoervalidatie (input validation). Daarbij controleren we in ons programma of de gebruiker wel de juiste soort gegevens invoert. Als we de datum vragen kan je nu perfect varkentjesdag invullen en als het aantal kinderen gevraagd wordt kan je veel te veel invullen. Je programma zal werken en een grappige tekst tonen, maar een goede programmeur houdt dat soort verkeerde invoer tegen. Maar eerst moet je iets over types leren. En daar gaat de volgende leerfiche over. Invoervalidatie komt aan bod in leerfiche [17] Fouten vinden en oplossen. Oefening Maak je eigen programma waarbij je de computer een aantal variabelen laat vragen, zoals naam, leeftijd, favoriete kleur, favoriete boek, favoriete film, favoriete game, huisdier, en brouw er dan een tekstje mee, bijvoorbeeld: Dag Arne, wat leuk dat je er bent! Ben jij al 11 jaar? Tof! Je favoriete film is Despicable Me! Waaw, die vind ik ook tof. En ik speel ook heel graag Minecraft. Daaag! Python [7] Variabelen en constanten versie 9/03/2015 5/5