oefeningen:oefeningen:python

Start je oefentraject op basis van bijgevoegde oefeningen. De lesinhouden die we samen hebben ingeoefend in de klas dienen als basis.

Elke oefening kan afzonderlijk gemaakt worden. Bij de oefeningen worden eventueel benodigdheden, extra tips, achtergrond informatie of bronverwijzingen opgenomen.

Enkele bronnen als naslagwerk/hulp:

Aan de hand van een verbetersleutel kan je je zelf bijsturen en verbeteren. Belangrijk is wel dat je deze verbetersleutel pas helemaal op het einde inzet, nadat je zelf hebt geprobeerd om de oefening volledig af te werken. Van zomaar oplossingen overnemen leer je onvoldoende bij. En leren is net de reden waarom je extra wil oefenen, niet? Let er ook op dat er voor verschillende oefeningen meerdere mogelijke oplossingen kunnen zijn. Dus het is niet omdat een verbetersleutel iets toont, dat het niet op een andere manier ook kan uitgewerkt worden. Dat is net het leuke aan programmeren. Voor heel wat problemen zijn meerdere oplossingen, en door het langs een andere kant te bekijken kan je weer extra ervaring opdoen…

Alvast veel succes!

Raf Aendekerk

Je kan altijd aan je basiskennis sleutelen door je verder te verdiepen en in te lezen op volgende website.

Test af en toe ook je skills aan de hand van 'online' oefeningetjes waarbij je code nakijkt en/of vervolledigt. Zo blijf je alert bij het schrijven van code, en zal je zien dat je onbewust ook heel wat andere skills aan het leren bent. Je zal wel zien dat de w3schools oefeningen vrij strict zijn vormgegeven, al is er soms wel ruimte om zelf iets te testen qua code. Ze doen dat zodat ze gemakkelijk feedback kunnen geven over wat je ingeeft.

Wil je meer focussen op onze klasoefenigen, en wil je meer creativiteit en vrijheid in je oefeningen kwijt kunnen? Start dan de oefeningen op de cursuswebsite van je leerkracht.

Let wel dat je programmacode uniek is; er is dan soms wel een verbetersleutel aanwezig; maar een probleem kan je op héél wat verschillende manieren oplossen en benaderen. Door andere standpunten te bekijken kan je verder bijleren en je skills ontwikkelen. Blijf dus steeds open staan voor andere manieren om eenzelfde probleem op te lossen. Ook als dat soms misschien minder efficiënt en/of soms wat moeilijker lijkt.

Oefening op commentaarlijnen, print(), tekst

  • Maak een script met naam Python_oef01_jenaam.py
  • Voorzie bovenaan 2 commentaarlijnen
    • Auteur: JouwNaam
    • Oef: python_oef01_jenaam.py
  • Maak gebruik van print() om onderstaande zinnen op het scherm te tonen. Je mag de gegevens zo intypen, we werken nog niet met variabelen. Je vult in de placeholders natuurlijk je eigen gegevens aan. Je eindigt met een witregel.
    • Hallo, ik stel me even voor:
    • Ik ben 'jenaam'!
    • Ik woon in 'jewoonplaats'.
    • Ik ben 'jeleeftijd' jaar oud.
    • <witregel>
  • Je voegt onderaan een print() instructie van één regel toe waarbij je op dezelfde manier alle bovenstaande informatieve gegevens toont. Deze keer in één instructie dus. Je eindigt dus opnieuw met een witregel.
  • Voeg bij je print() opdracht 1 extra commentaarlijn toe met een duidelijke gepaste toelichting
  • Als laatste schrijf je met één print() instructie 25 keer achter elkaar: 'Ik vind python leuk… '
  • Voeg bij je laatste instructie een gepaste commentaarlijn toe.

Verbetersleutel

Tips bij gebruik van de verbetersleutel:

  • Maak eerst zelf je oefening volledig af. Probeer écht zelf tot een oplossing te komen: test, probeer, zoek op, lees, controleer,…
  • Raadpleeg indien nodig je naslagwerk en online bronnen, of vraag nadien eventueel feedback aan je leerkracht.
  • Probeer het gebruik van de verbetersleutel uit te stellen tot je helemaal klaar bent.
  • Van gewoon maar oplossingen overnemen leer je immers weinig tot niets bij.

OK, ik volg bovenstaande tips! Toon mij de verbetersleutel.

python_oef01_jenaam.py
  1. # Auteur: Raf Aendekerk
  2. # App: Python_oef01_jenaam.py
  3.  
  4. # persoonlijke informatie tonen op het scherm
  5. print("Hallo, ik stel me even voor:")
  6. print("Ik ben Raf Aendekerk!")
  7. print("Ik woon in Turnhout in België.")
  8. print("Ik ben 43 jaar oud.")
  9. print()
  10.  
  11. # dezelfde informatie tonen in één regel code
  12. print("Hallo, ik stel me even voor: \nIk ben Raf Aendekerk! \nIk woon in Turnhout in België. \nIk ben 43 jaar oud.\n")
  13.  
  14. # toon met één instructie 25x de zin 'Ik vind Python leuk ...'
  15. print("Ik vind Python leuk... " * 25)
output_shell.txt
  1. Hallo, ik stel me even voor:
  2. Ik ben Raf Aendekerk!
  3. Ik woon in Turnhout in België.
  4. Ik ben 43 jaar oud.
  5.  
  6. Hallo, ik stel me even voor:
  7. Ik ben Raf Aendekerk!
  8. Ik woon in Turnhout in België.
  9. Ik ben 43 jaar oud.
  10.  
  11. Ik vind Python leuk... Ik vind Python leuk... Ik vind Python leuk... Ik vind Python leuk... Ik vind Python leuk... Ik vind Python leuk... Ik vind Python leuk... Ik vind Python leuk... Ik vind Python leuk... Ik vind Python leuk... Ik vind Python leuk... Ik vind Python leuk... Ik vind Python leuk... Ik vind Python leuk... Ik vind Python leuk... Ik vind Python leuk... Ik vind Python leuk... Ik vind Python leuk... Ik vind Python leuk... Ik vind Python leuk... Ik vind Python leuk... Ik vind Python leuk... Ik vind Python leuk... Ik vind Python leuk... Ik vind Python leuk...

Oefening op commentaarlijnen, print(), tekst, wiskundige berekeningen, modulo/rest

Let op: je werkt nog niet met variabelen. Je gebruikt enkel tekst en berekeningen in combinatie van je print() commando.

  • Maak een script met naam Python_oef02_jenaam.py
  • Voorzie bovenaan 2 commentaarlijnen
    • Auteur: JouwNaam
    • Oef: python_oef02_jenaam.py
  • Maak gebruik van print() om de instructie met de uitkomst van onderstaande berekeningen op het scherm te tonen. Waar kan gebruik je wiskundige berekeningen. We werken nog niet met variabelen.
    • Som: 165 plus 195 is <uitkomst>
    • Verschil: 519 min 264 is <uitkomst>
    • product: 37 maal 168 is <uitkomst>
    • quotient: 1675 gedeeld door 23 is <uitkomst>
    • macht: 2 tot de 32ste is <uitkomst>
    • vierkantwortel van 16 is <uitkomst>
    • <witregel>
  • Onderaan voeg je een nieuwe berekening toe voor onderstaande situatie:
    • Situatie: Een school wil met 1377 leerlingen op schoolreis gaan. Er gaan ook 25 begeleiders mee. Ze contacteert daarvoor een busmaatschappij. Er zijn alleen bussen beschikbaar met een capaciteit van 55 personen.
    • Hoeveel bussen heeft de school geschat nodig voor deze uitstap? Hoeveel 'volledig' volle bussen zijn er? En hoeveel personen zitten er in de laatste bus? Je mag er van uitgaan dat het totale aantal leerlingen nooit 'exact' zal uitkomen met een busaantal, er zal bijna altijd een restwaarde zijn. Hou hiermee rekening in je berekening. We zien later hoe dat nauwkeuriger kan. (Tip voor als je dit probleem nu al wil oplossen: combineer een 'if' instructie met een deling door de modulesoperator '%' om te kijken of de rest = 0 is; op basis daarvan zorg je voor een correcte berekening. We bekijken dit samen in een van de volgende lessen, maar je kan hier alvast rond uittesten als je wat voorloopt op de inhouden.)
    • Een bus kost 250 euro voor de hele dag (alles inbegrepen). Hoeveel kost deze totale uitstap aan buskosten alleen? Hoeveel is de geschatte kost per deelnemer (lln en lkr betalen een geschatte gedeelde kost voor de bus).
    • Toon output van bovenstaande informatie op je scherm. Je mag extra informatieve zinnen toevoegen om een mooi antwoord te verkrijgen.
  • Voeg bij je laatste instructies gepaste commentaarlijnen toe.

Verbetersleutel

Tips bij gebruik van de verbetersleutel:

  • Maak eerst zelf je oefening volledig af. Probeer écht zelf tot een oplossing te komen: test, probeer, zoek op, lees, controleer,…
  • Raadpleeg indien nodig je naslagwerk en online bronnen, of vraag nadien eventueel feedback aan je leerkracht.
  • Probeer het gebruik van de verbetersleutel uit te stellen tot je helemaal klaar bent.
  • Van gewoon maar oplossingen overnemen leer je immers weinig tot niets bij.

OK, ik volg bovenstaande tips! Toon mij de verbetersleutel.

python_oef02_jenaam.py
  1. # Auteur: Raf Aendekerk
  2. # App: python_oef02_jenaam.py
  3.  
  4. # Wiskundige berekeningen:
  5. print("165 + 195 =", 165 + 195)
  6. print("519 - 264 =", 519 - 264)
  7. print("37 * 168 =", 37 * 168)
  8. print("1675 / 23 =", 1675 / 23)
  9. print("2 ** 32 =", 2 ** 32)
  10. print("16 ^ 2 =", 16 ** (1/2.0))
  11. print()
  12. print()
  13.  
  14. # Oefening busuistap school
  15. print("Oefening schoolreis:")
  16. print() # print lege regel
  17. print("Gegevens: \nUitstap school: 1377 lln,",
  18. "25 lkr,",
  19. "\nBussen (max 55 personen per bus),",
  20. "\nBusprijs: € 250 per bus.")
  21. print() # print lege regel
  22. print("Gevraagd: \nHoeveel totaal aantal bussen?",
  23. "\nHoeveel volledige bussen?",
  24. "\nHoeveel personen in de laatste bus?",
  25. "\nHoeveel kostprijs voor busreservatie?",
  26. "\nHoeveel geschatte kost per deelnemer?")
  27. print() # print lege regel
  28. print("Antwoord:")
  29. # totaal aantal deelnemers delen door aantal plaatsen per bus (zonder rest) + 1 (hoogst waarschijnlijk rest)
  30. print("Totaal aantal bussen:", ((1377+25)//55)+1)
  31. # totaal aantal deelnemers delen door aantal plaatsen per bus (zonder restwaarde)
  32. print("# volledige bussen:", (1377+25)//55)
  33. # toon de restwaarde van aantal overblijvende personen in de laatste bus
  34. print("# personen in de laatste bus:", (1377+25)%55)
  35. # totaal aantal bussen * prijs van 250 € per bus
  36. print("Kostprijs voor busreservatie: €", (((1377+25)//55)+1)*250)
  37. # totale kost delen door aantal personen
  38. print("Geschatte kost per persoon: €", ((((1377+25)//55)+1)*250)/(1377+25))
output_shell.txt
165 + 195 = 360
519 - 264 = 255
37 * 168 = 6216
1675 / 23 = 72.82608695652173
2 ** 32 = 4294967296
16 ^ 2 = 4.0
 
 
Oefening schoolreis:
 
Gegevens: 
Uitstap school: 1377 lln, 25 lkr, 
Bussen (max 55 personen per bus), 
Busprijs: € 250 per bus.
 
Gevraagd: 
Hoeveel totaal aantal bussen? 
Hoeveel volledige bussen? 
Hoeveel personen in de laatste bus? 
Hoeveel kostprijs voor busreservatie? 
Hoeveel geschatte kost per deelnemer?
 
Antwoord:
Totaal aantal bussen: 26
# volledige bussen: 25
# personen in de laatste bus: 27
Kostprijs voor busreservatie: € 6500
Geschatte kost per persoon: € 4.63623395149786

Oefening op variabelen, print(), input(), if elif else

  • Maak een script met naam Python_oef03_jenaam.py
  • Voorzie bovenaan 2 commentaarlijnen
    • Auteur: JouwNaam
    • Oef: python_oef03_jenaam.py
  • Toon volgende lijst met kleuren op het scherm.
    • 1. Groen
    • 2. Geel
    • 3. Oranje
    • 4. Rood
    • 5. Blauw
    • 6. Bruin
    • 7. Paars
    • 8. Andere kleur
  • Vraag om de gebruiker om zijn favoriete kleur en laat hem een nummer invullen.
  • Gebruik de if elif else structuur om de invoer te controleren en een bijhorende zin te tonen op het scherm:
    • Voor elke cijfer van 1 tot en met 7:
      • Je favoriete kleur is ……. (wordt bij elke keuze getoond en ingevuld)
    • Als de gebruiker 8 invult:
      • Oei, je kleur staat hier niet tussen!
      • + Vraag dan aan de gebruiker: wat is dan jouw favoriete kleur?
      • Bewaar deze kleur in een variabele 'kleurgebruiker'.
      • Geef een melding naar het scherm, met de favoriete kleur van de gebruiker
        • bv: Je hebt als favoriete kleur … opgegeven, die is inderdaad ook heel mooi!
    • Als de gebruiker iets anders invult dan die 8 cijfers, krijgt hij een foutmelding:
      • Je maakte een ongeldige keuze. Vul enkel cijfer van 1 tot en met 8 in.
  • Voeg bij je instructies gepaste commentaarlijnen toe.
  • Voorlopig moet je na elke poging het programma opnieuw starten; we bekijken binnenkort hoe we dat kunnen aanpassen.

Verbetersleutel

Tips bij gebruik van de verbetersleutel:

  • Maak eerst zelf je oefening volledig af. Probeer écht zelf tot een oplossing te komen: test, probeer, zoek op, lees, controleer,…
  • Raadpleeg indien nodig je naslagwerk en online bronnen, of vraag nadien eventueel feedback aan je leerkracht.
  • Probeer het gebruik van de verbetersleutel uit te stellen tot je helemaal klaar bent.
  • Van gewoon maar oplossingen overnemen leer je immers weinig tot niets bij.

OK, ik volg bovenstaande tips! Toon mij de verbetersleutel.

python_oef03_jenaam.py
  1. # Auteur: Raf Aendekerk
  2. # App: python_oef03_jenaam.py
  3.  
  4. # Toon de kleuren op het scherm:
  5. print("1. Groen")
  6. print("2. Geel")
  7. print("3. Oranje")
  8. print("4. Rood")
  9. print("5. Blauw")
  10. print("6. Bruin")
  11. print("7. Paars")
  12. print("8. Een andere kleur")
  13. print() # lege regel voor duidelijkheid op scherm gebruiker
  14.  
  15. # vraag aan de gebruiker om een cijfer in te vullen.
  16. keuze_kleur = int(input("Kies uit bovenstaande lijst je favoriete kleur, \
  17. Typ het cijfer in: "))
  18.  
  19. # controleer de keuzes van de gebruiker en toon telkens een zin
  20. if (keuze_kleur == 1):
  21. print("Je koos als favoriete kleur 'Groen'.")
  22. elif (keuze_kleur == 2):
  23. print("Je koos als favoriete kleur 'Geel'.")
  24. elif (keuze_kleur == 3):
  25. print("Je koos als favoriete kleur 'Oranje'.")
  26. elif (keuze_kleur == 4):
  27. print("Je koos als favoriete kleur 'Rood'.")
  28. elif (keuze_kleur == 5):
  29. print("Je koos als favoriete kleur 'Blauw'.")
  30. elif (keuze_kleur == 6):
  31. print("Je koos als favoriete kleur 'Bruin'.")
  32. elif (keuze_kleur == 7):
  33. print("Je koos als favoriete kleur 'Paars'.")
  34. elif (keuze_kleur == 8):
  35. print("Je gaf aan dat je favoriete kleur niet in deze lijst staat.")
  36. # vraag in dit geval een echte kleur van de gebruiker
  37. keuze_kleur_gebruiker = input("Welke kleur is dan jouw favoriete kleur? Vul een kleur in: ")
  38. # toon deze nieuwe kleur op het scherm
  39. print("Je koos voor", keuze_kleur_gebruiker, "als favoriete kleur. Die is ook héél mooi!")
  40. else:
  41. # alle andere keuzes worden opgevangen door deze instructie
  42. print("Je hebt geen geldige keuze gemaakt. Vul enkel cijfer van 1 tot en met 8 in")
output_1_shell.txt
1. Groen
2. Geel
3. Oranje
4. Rood
5. Blauw
6. Bruin
7. Paars
8. Een andere kleur
 
Kies uit bovenstaande lijst je favoriete kleur, Typ het cijfer in: 13
Je hebt geen geldige keuze gemaakt. Vul enkel cijfer van 1 tot en met 8 in
output_2_shell.txt
1. Groen
2. Geel
3. Oranje
4. Rood
5. Blauw
6. Bruin
7. Paars
8. Een andere kleur
 
Kies uit bovenstaande lijst je favoriete kleur, Typ het cijfer in: 5
Je koos als favoriete kleur 'Blauw'.
output_3_shell.txt
1. Groen
2. Geel
3. Oranje
4. Rood
5. Blauw
6. Bruin
7. Paars
8. Een andere kleur
 
Kies uit bovenstaande lijst je favoriete kleur, Typ het cijfer in: 8
Je gaf aan dat je favoriete kleur niet in deze lijst staat.
Welke kleur is dan jouw favoriete kleur? Vul een kleur in: Zilver
Je koos voor Zilver als favoriete kleur. Die is ook héél mooi!

Oefening op variabelen, print(), input(), if elif else, type(), int(), str(), float(), While True:

  • Maak een script met naam Python_oef04_jenaam.py
  • Voorzie bovenaan 2 commentaarlijnen
    • Auteur: JouwNaam
    • Oef: python_oef04_jenaam.py
  • Berekenen van BMI (Body Mass Index):
    • Je kan op basis van een opgegeven berekening een applicatie uitwerken.
    • Bekijk daarvoor volgende bijlage: voedingscentrum.nl-bmi_berekenen.pdf
    • Je zal enkele vragen moeten stellen aan je gebruiker.
    • De input van de gebruiker geef je een juiste gegevenstype (str, int, foat).
    • Je rekent daarna op basis van de formule de BMI van die persoon uit.
    • Je voorziet een duidelijke feedback. Bv: Op basis van jouw ingegeven waarden … en … en … is jouw BMI …
    • Voorzie ook een overzicht van de verschillende categorieën waar je je in kan bevinden, en in welke categorie uiteindelijk jouw waarde ligt.
    • Voorzie een mooie layout van jouw programma zodat het voor een gebruiker overzichtelijk en handig om gebruiken is.
  • Je zorgt voor de nodige duidelijkheid en overzichtelijke layout bij de uitvoering van je script (zowel in de code als in de visuele feedback naar de gebruiker).
    • Bijvoorbeeld met witregels, eenzelfde notatie doorheen de keuzes
    • Bijvoorbeeld door stappen duidelijk op te splitsen en de input op een duidelijke manier te vragen
    • Bijvoorbeeld door duidelijke instructies te geven, of bepaalde info te tonen bij de start van je programma.
  • Je zorgt voor voldoende duidelijke commentaarregels in je broncode.

Je merkt bij deze oefening heel wat vrijheid. Probeer alle geziene inhouden die we de laatste weken reeds hebben gezien en geoefend toe te passen in deze oefening!


Verbetersleutel

Tips bij gebruik van de verbetersleutel:

  • Maak eerst zelf je oefening volledig af. Probeer écht zelf tot een oplossing te komen: test, probeer, zoek op, lees, controleer,…
  • Raadpleeg indien nodig je naslagwerk en online bronnen, of vraag nadien eventueel feedback aan je leerkracht.
  • Probeer het gebruik van de verbetersleutel uit te stellen tot je helemaal klaar bent.
  • Van gewoon maar oplossingen overnemen leer je immers weinig tot niets bij.

OK, ik volg bovenstaande tips! Toon mij de verbetersleutel.

python_oef04_jenaam.py
  1. # Auteur: Raf Aendekerk
  2. # App: python_oef04_jenaam.py
  3. #
  4. # Info en berekening: https://www.voedingscentrum.nl/nl/bmi-meter.aspx
  5. # Oefeningen op BMI Berekenen en feedback geven aan de gebruiker
  6.  
  7. while True:
  8.  
  9. leeftijd = int(input("Geef je leeftijd op (in jaren): "))
  10. lengte = int(input("Geef je lengte op (in centimeters): "))
  11. gewicht = int(input("Geef je gewicht op (in kilogram): "))
  12.  
  13. bmi = gewicht / ((lengte/100)*(lengte/100))
  14. bmi = round(bmi,1)
  15.  
  16. print ("")
  17. print ("|")
  18. print ("| Op basis van jouw opgegeven gegevens is jouw bmi [",round(bmi,1),"]")
  19. print ("|")
  20. if bmi < 18.5:
  21. print("| Je bmi van",bmi,"is lager dan 18.5.")
  22. print("| Dit betekent: Je hebt ondergewicht.")
  23. elif bmi <= 25:
  24. print("| Je bmi van",bmi,"ligt tussen 18.5 en 25.")
  25. print("| Dit betekent: Je hebt een gezond gewicht.")
  26. elif bmi <= 30:
  27. print("| Je bmi van",bmi,"ligt tussen 25 en 30.")
  28. print("| Dit betekent: Je hebt overgewicht.")
  29. else:
  30. print("| Je bmi van",bmi,"ligt boven 30.")
  31. print("| Dit betekent: Je hebt ernstig overgewicht (obesitas).")
  32. print("| ")
  33. print("")
output_1_shell.txt
Geef je leeftijd op (in jaren): 43
Geef je lengte op (in centimeters): 187
Geef je gewicht op (in kilogram): 81
 
|
| Op basis van jouw opgegeven gegevens is jouw bmi [ 23.2 ]
|
| Je bmi van 23.2 ligt tussen 18.5 en 25.
| Dit betekent: Je hebt een gezond gewicht.
|
output_2_shell.txt
# todo...
# eventueel met tonen van categorieën en aanduiding in welke categorie je zelf zit.

Oefening op variabelen, print(), input(), if elif else, type(), int(), str(), float(), eenvoudige functies

Opmerking: er wordt nog niet gebruik gemaakt van geavanceerde onderdelen (lists, dictionary, tuples, …), ook al zouden die misschien meer aangewezen zijn. De focus in deze oefening ligt op geneste if elif en else instructies, met wat aangevulde varia commando's. Misschien kan je op een later moment met wat meer achtergrondkennis de oefening eens herwerken op een meer doordachte en efficiente manier met meer geavanceerde bouwstenen.

  • Maak een script met naam Python_oef05_jenaam.py
  • Voorzie bovenaan 2 commentaarlijnen
    • Auteur: JouwNaam
    • Oef: python_oef05_jenaam.py
  • Ontbijt samenstellen:
    • Maak je keuze uit drie drankjes (fruitsap, thee, koffie)
      • bij koffie en thee moet je ook kunnen kiezen uit melk en suiker
    • Nadien maak je keuze uit (eieren, toast, yoghurt)
      • Eieren heeft als keuze (roerei, spiegelei, spek met eieren)
      • Toast heeft als keuze (wit brood, bruin brood, grof brood)
      • Toast heeft als tweede keuze (confituur, stroop, kaas, vlees)
      • Yoghurt heeft als keuze (gemengd fruit, aardbeien, granola, haver, puurnatuur)
    • Tenslotte toon je de hele gekozen menu als samenvatting op het scherm.
    • Uitbreiding1: Voorzie nadien een optie bij elke keuze zodat de gebruiker ook 'geen (of 0 ofzo)' kan kiezen.
    • Uitbreiding2: Voorzie voor elke van de keuzes een gepaste realistische prijs, Deze prijzen kan je best bundelen in je script lijst met variabelen zodat je ze snel kan aanpassen wanneer prijzen zouden aanpassen.
      • Je rekent in de loop van de uitvoering van je script de totaalkost voor de gebruiker uit, bestaande in de prijs per onderdeel/rubriek.
  • Je zorgt voor de nodige duidelijkheid en overzichtelijke layout bij de uitvoering van je script
    • Bijvoorbeeld met witregels, eenzelfde notatie doorheen de keuzes
    • Bijvoorbeeld door stappen duidelijk op te splitsen en de input op een duidelijke manier te vragen
    • Bijvoorbeeld door 'tussentotalen' en/of 'prijzen' te tonen van bij de start.
  • Je zorgt voor voldoende duidelijke commentaarregels in je broncode.

Je merkt bij deze oefening heel wat vrijheid. Probeer alle geziene inhouden die we de laatste weken reeds hebben gezien en geoefend toe te passen in deze oefening!


Verbetersleutel

Tips bij gebruik van de verbetersleutel:

  • Maak eerst zelf je oefening volledig af. Probeer écht zelf tot een oplossing te komen: test, probeer, zoek op, lees, controleer,…
  • Raadpleeg indien nodig je naslagwerk en online bronnen, of vraag nadien eventueel feedback aan je leerkracht.
  • Probeer het gebruik van de verbetersleutel uit te stellen tot je helemaal klaar bent.
  • Van gewoon maar oplossingen overnemen leer je immers weinig tot niets bij.

OK, ik volg bovenstaande tips! Toon mij de verbetersleutel.

python_oef04_jenaam.py
  1. # Auteur: Raf Aendekerk
  2. # App: python_oef05_jenaam.py
  3. #
  4. # Oefeningen ontbijt samenstellen en berekenen (if elif keuzes)
  5.  
  6. # functie om een titel met opmaak te tonen
  7. def titel(tekst):
  8. lijn = "*" * (len(tekst)+4)
  9. print()
  10. print(lijn)
  11. print("*",tekst,"*")
  12. print(lijn)
  13.  
  14. # functie om een vraag met onderlijning te tonen
  15. def vraag(tekst):
  16. lijn = "_" * len(tekst)
  17. print()
  18. print(tekst)
  19. print(lijn)
  20. print()
  21.  
  22. # functie om de items en opties en prijzen te tonen in een mooie lijst
  23. def item(x,nr,product,prijs):
  24. if (x=="p"):
  25. if (prijs == 0):
  26. print("(",nr,") ",product,sep="")
  27. else:
  28. print("(",nr,") [€ ",prijs,"] ",product,sep="")
  29. else:
  30. if (prijs == 0):
  31. print(" + keuze: ",product,sep="")
  32. else:
  33. print(" + keuze: [+ € ",prijs,"] ",product,sep="")
  34.  
  35. #diverse veriabelen, nodig zodat ze verder kunnen gebruikt worden bij de functie
  36. p="p" #afkorting voor product
  37. o="o" #afkorting voor optie/keuze
  38.  
  39. # variabelen standaard op 0 of "" of -1 zetten
  40. keuze_drank = -1
  41. prijs_drank = 0
  42. keuze_eieren = -1
  43. prijs_eieren = 0
  44. keuze_toast = -1
  45. prijs_toast = 0
  46. keuze_yoghurt = -1
  47. prijs_yoghurt = 0
  48. prijs_totaal = 0
  49. gekozenonderdelen = ""
  50.  
  51. # prijslijst artikelen kan je hier ineens voor de hele app aanpassen.
  52. itemprijs_leeg = 0
  53. itemprijs_fruitsap = 3.8
  54. itemprijs_thee = 3.0
  55. itemprijs_koffie = 3.3
  56. itemprijs_melk = 0.3
  57. itemprijs_suiker = 0
  58. itemprijs_roerei = 7.0
  59. itemprijs_spiegelei = 6.0
  60. itemprijs_gekooktei = 5.0
  61. itemprijs_spekmetei = 9.0
  62. itemprijs_toastconfituur = 8.0
  63. itemprijs_toaststroop = 8.5
  64. itemprijs_toastkaas = 10
  65. itemprijs_toastvlees = 10
  66. itemprijs_yoghurtnatuur = 4
  67. itemprijs_yoghurtfruit = 7.5
  68. itemprijs_yoghurtaardbei = 7.5
  69. itemprijs_yoghurtgranola = 7.0
  70. itemprijs_yoghurthavermuesli = 6.5
  71. #####################################################################
  72.  
  73. titel("JOUW LEKKER ONTBIJT SAMENSTELLEN in enkele stappen!")
  74.  
  75. vraag("Stap 1: Wat wil je graag drinken?")
  76.  
  77. # toon een mooi menu met behulp van bovenstaande functie
  78. # p staat voor product, o voor optie, nummers wijzen op keuzenummer
  79. item(p,0,"<niets selecteren>",itemprijs_leeg)
  80. item(p,1,"Vers fruitsap",itemprijs_fruitsap)
  81. item(p,2,"Thee naar keuze",itemprijs_thee)
  82. item(o,0,"melk",itemprijs_melk)
  83. item(o,0,"suiker",itemprijs_suiker)
  84. item(p,3,"Verse Koffie",itemprijs_koffie)
  85. item(o,0,"melk",itemprijs_melk)
  86. item(o,0,"suiker",itemprijs_suiker)
  87. print()
  88.  
  89. # indien keuze van drank nog op -1 staat, stel de vraag, nadien vullen met antwoord
  90. if keuze_drank == -1:
  91. keuze_drank = int(input("Welke drank kies je (0-1-2-3)? "))
  92.  
  93. # keuzes afhandelen voor dranken
  94. if keuze_drank == 0:
  95. if gekozenonderdelen == "":
  96. gekozenonderdelen = "Geen drank"
  97. else:
  98. # standaard de gekozen items toevoegen aan een string
  99. # maar wel met telkens een nieuwe regel en - vooraan
  100. gekozenonderdelen = gekozenonderdelen + "\n-" + "Geen drank"
  101. prijs_drank = itemprijs_leeg
  102. # bereken de totaalprijs, gemakkelijk zo door te kopieren voor later
  103. prijs_totaal = prijs_drank + prijs_eieren + prijs_toast + prijs_yoghurt
  104. print()
  105. print("Je keuzes:",gekozenonderdelen,sep="\n-")
  106. print("Totale prijs van je ontbijt = [€ ",prijs_totaal,"]",sep="")
  107. print()
  108. elif keuze_drank == 1:
  109. if gekozenonderdelen == "":
  110. gekozenonderdelen = "Vers fruitsap (€ " + str(itemprijs_fruitsap) +")"
  111. else:
  112. gekozenonderdelen = gekozenonderdelen + "\n-" + "Vers fruitsap (€ " + str(itemprijs_fruitsap) +")"
  113. prijs_drank += itemprijs_fruitsap
  114. prijs_totaal = prijs_drank + prijs_eieren + prijs_toast + prijs_yoghurt
  115. print()
  116. print("Je keuzes:",gekozenonderdelen,sep="\n-")
  117. print("Totale prijs van je ontbijt = [€ ",prijs_totaal,"]",sep="")
  118. print()
  119. elif keuze_drank == 2:
  120. # bij verdere keuze opties onmiddellijk bijkomende vragen stellen
  121. keuzeoptie_melk = int(input("Welke je graag extra melk? (0=neen,1=ja)? "))
  122. keuzeoptie_suiker = int(input("Welke je graag extra suiker? (0=neen,1=ja)? "))
  123. keuzeoptie = "" #keuzeoptie leegmaken voor vullen keuze
  124. # gebruiken om de tijdelijke keuze ook aan een string te kunnen toevoegen
  125. if keuzeoptie_melk == 0:
  126. keuzeoptie = " (zonder melk"
  127. else:
  128. keuzeoptie = " (met melk (€ "+ str(itemprijs_melk) +")"
  129. prijs_drank += itemprijs_melk
  130. if keuzeoptie_suiker == 0:
  131. keuzeoptie = keuzeoptie + "," + "zonder suiker)"
  132. else:
  133. keuzeoptie = keuzeoptie + "," + "met suiker(€ "+ str(itemprijs_suiker) +"))"
  134. prijs_drank += itemprijs_suiker
  135.  
  136. if gekozenonderdelen == "":
  137. gekozenonderdelen = "Thee naar keuze (€ " + str(itemprijs_thee) + ")" + keuzeoptie
  138. else:
  139. gekozenonderdelen = gekozenonderdelen + "\n-" + "Thee naar keuze (€ " + str(itemprijs_thee) + ")" + keuzeoptie
  140. prijs_drank += itemprijs_thee
  141. prijs_totaal = prijs_drank + prijs_eieren + prijs_toast + prijs_yoghurt
  142. print()
  143. print("Je keuzes:",gekozenonderdelen,sep="\n-")
  144. print("Totale prijs van je ontbijt = [€ ",prijs_totaal,"]",sep="")
  145. print()
  146. elif keuze_drank == 3:
  147. keuzeoptie_melk = int(input("Welke je graag extra melk? (0=neen,1=ja)? "))
  148. keuzeoptie_suiker = int(input("Welke je graag extra suiker? (0=neen,1=ja)? "))
  149. keuzeoptie = "" #keuzeoptie leegmaken voor vullen keuze
  150. if keuzeoptie_melk == 0:
  151. keuzeoptie = " (zonder melk"
  152. else:
  153. keuzeoptie = " (met melk (€ "+ str(itemprijs_melk) +")"
  154. prijs_drank += itemprijs_melk
  155. if keuzeoptie_suiker == 0:
  156. keuzeoptie = keuzeoptie + "," + "zonder suiker)"
  157. else:
  158. keuzeoptie = keuzeoptie + "," + "met suiker(€ "+ str(itemprijs_suiker) +"))"
  159. prijs_drank += itemprijs_suiker
  160.  
  161. if gekozenonderdelen == "":
  162. gekozenonderdelen = "Verse koffie (€ "+ str(itemprijs_koffie) +")" + keuzeoptie
  163. else:
  164. gekozenonderdelen = gekozenonderdelen + "\n-" + "Verse koffie ("+ itemprijs_koffie +")" + keuzeoptie
  165. prijs_drank += itemprijs_koffie
  166. prijs_totaal = prijs_drank + prijs_eieren + prijs_toast + prijs_yoghurt
  167. print()
  168. print("Je keuzes:",gekozenonderdelen,sep="\n-")
  169. print("Totale prijs van je ontbijt = [€ ",prijs_totaal,"]",sep="")
  170. print()
  171. else:
  172. print() # toekomst voor opvangen foutcode andere input
  173.  
  174. # deel twee afhandelen, idem als hierboven maar nu voor eten, zelfde werkwijze
  175. vraag("Stap 2: Wil je graag eieren eten?")
  176.  
  177. item(p,0,"<niets selecteren>",itemprijs_leeg)
  178. item(p,1,"Eieren: Roerei (2st)",itemprijs_roerei)
  179. item(p,2,"Eieren: Spiegelei (2st)",itemprijs_spiegelei)
  180. item(p,3,"Eieren: Gekookt ei (2st)",itemprijs_gekooktei)
  181. item(p,4,"Eieren: Spek met ei (2st)",itemprijs_spekmetei)
  182. print()
  183.  
  184. if keuze_eieren == -1:
  185. keuze_eieren = int(input("Welk eiergerecht kies je (0-1-2-3-4)? "))
  186.  
  187. if keuze_eieren == 0:
  188. gekozenonderdelen = gekozenonderdelen + "\n-" + "Geen eieren"
  189. prijs_eieren = itemprijs_leeg
  190. prijs_totaal = prijs_drank + prijs_eieren + prijs_toast + prijs_yoghurt
  191. print()
  192. print("Je keuzes:",gekozenonderdelen,sep="\n-")
  193. print("Totale prijs van je ontbijt = [€ ",prijs_totaal,"]",sep="")
  194. print()
  195. elif keuze_eieren == 1:
  196. gekozenonderdelen = gekozenonderdelen + "\n-" + "Eieren - Roerei (€ "+ str(itemprijs_roerei) + ")"
  197. prijs_eieren += itemprijs_roerei
  198. prijs_totaal = prijs_drank + prijs_eieren + prijs_toast + prijs_yoghurt
  199. print()
  200. print("Je keuzes:",gekozenonderdelen,sep="\n-")
  201. print("Totale prijs van je ontbijt = [€ ",prijs_totaal,"]",sep="")
  202. print()
  203. elif keuze_eieren == 2:
  204. gekozenonderdelen = gekozenonderdelen + "\n-" + "Eieren - Spiegelei (€ "+ str(itemprijs_spiegelei) + ")"
  205. prijs_eieren += itemprijs_spiegelei
  206. prijs_totaal = prijs_drank + prijs_eieren + prijs_toast + prijs_yoghurt
  207. print()
  208. print("Je keuzes:",gekozenonderdelen,sep="\n-")
  209. print("Totale prijs van je ontbijt = [€ ",prijs_totaal,"]",sep="")
  210. print()
  211. elif keuze_eieren == 3:
  212. gekozenonderdelen = gekozenonderdelen + "\n-" + "Eieren - Gekookt ei (€ "+ str(itemprijs_gekooktei) +")"
  213. prijs_eieren += itemprijs_gekooktei
  214. prijs_totaal = prijs_drank + prijs_eieren + prijs_toast + prijs_yoghurt
  215. print()
  216. print("Je keuzes:",gekozenonderdelen,sep="\n-")
  217. print("Totale prijs van je ontbijt = [€ ",prijs_totaal,"]",sep="")
  218. print()
  219. elif keuze_eieren == 4:
  220. gekozenonderdelen = gekozenonderdelen + "\n-" + "Eieren - Spek met ei (€ "+ str(itemprijs_spekmetei) + ")"
  221. prijs_eieren += itemprijs_spekmetei
  222. prijs_totaal = prijs_drank + prijs_eieren + prijs_toast + prijs_yoghurt
  223. print()
  224. print("Je keuzes:",gekozenonderdelen,sep="\n-")
  225. print("Totale prijs van je ontbijt = [€ ",prijs_totaal,"]",sep="")
  226. print()
  227. else:
  228. print() # toekomst voor opvangen foutcode andere input
  229.  
  230.  
  231. vraag("Stap 3: Wil je graag toast met beleg eten?")
  232.  
  233. item(p,0,"<niets selecteren>",itemprijs_leeg)
  234. item(p,1,"Toast met confituur",itemprijs_toastconfituur)
  235. item(o,0,"Wit / Bruin / Grof",itemprijs_leeg)
  236. item(p,2,"Toast met stroop",itemprijs_toaststroop)
  237. item(o,0,"Wit / Bruin / Grof",itemprijs_leeg)
  238. item(p,3,"Toast met kaas",itemprijs_toastkaas)
  239. item(o,0,"Wit / Bruin / Grof",itemprijs_leeg)
  240. item(p,4,"Toast met vlees",itemprijs_toastvlees)
  241. item(o,0,"Wit / Bruin / Grof",itemprijs_leeg)
  242.  
  243.  
  244. print()
  245.  
  246. if keuze_toast == -1:
  247. keuze_toast = int(input("Welk toast met beleg kies je (0-1-2-3-4)? "))
  248.  
  249. if keuze_toast == 0:
  250. gekozenonderdelen = gekozenonderdelen + "\n-" + "Geen toast"
  251. prijs_toast = itemprijs_leeg
  252. prijs_totaal = prijs_drank + prijs_eieren + prijs_toast + prijs_yoghurt
  253. print()
  254. print("Je keuzes:",gekozenonderdelen,sep="\n-")
  255. print("Totale prijs van je ontbijt = [€ ",prijs_totaal,"]",sep="")
  256. print()
  257. elif keuze_toast == 1:
  258. keuzeoptie_toast = int(input("Welke type brood? (0=wit,1=bruin,2=grof)? "))
  259. keuzeoptie = "" #keuzeoptie leegmaken voor vullen keuze
  260. if keuzeoptie_toast == 0:
  261. keuzeoptie = " (wit brood)"
  262. elif keuzeoptie_toast == 1:
  263. keuzeoptie = " (bruin brood)"
  264. elif keuzeoptie_toast == 2:
  265. keuzeoptie = " (grof brood)"
  266. gekozenonderdelen = gekozenonderdelen + "\n-" + "Toast - Confituur (€ "+ str(itemprijs_toastconfituur)+")" + keuzeoptie
  267. prijs_toast += itemprijs_toastconfituur
  268. prijs_totaal = prijs_drank + prijs_eieren + prijs_toast + prijs_yoghurt
  269. print()
  270. print("Je keuzes:",gekozenonderdelen,sep="\n-")
  271. print("Totale prijs van je ontbijt = [€ ",prijs_totaal,"]",sep="")
  272. print()
  273. elif keuze_toast == 2:
  274. keuzeoptie_toast = int(input("Welke type brood? (0=wit,1=bruin,2=grof)? "))
  275. keuzeoptie = "" #keuzeoptie leegmaken voor vullen keuze
  276. if keuzeoptie_toast == 0:
  277. keuzeoptie = " (wit brood)"
  278. elif keuzeoptie_toast == 1:
  279. keuzeoptie = " (bruin brood)"
  280. elif keuzeoptie_toast == 2:
  281. keuzeoptie = " (grof brood)"
  282. gekozenonderdelen = gekozenonderdelen + "\n-" + "Toast - Stroop (€ "+str(itemprijs_toaststroop)+")" + keuzeoptie
  283. prijs_toast += itemprijs_toaststroop
  284. prijs_totaal = prijs_drank + prijs_eieren + prijs_toast + prijs_yoghurt
  285. print()
  286. print("Je keuzes:",gekozenonderdelen,sep="\n-")
  287. print("Totale prijs van je ontbijt = [€ ",prijs_totaal,"]",sep="")
  288. print()
  289. elif keuze_toast == 3:
  290. keuzeoptie_toast = int(input("Welke type brood? (0=wit,1=bruin,2=grof)? "))
  291. keuzeoptie = "" #keuzeoptie leegmaken voor vullen keuze
  292. if keuzeoptie_toast == 0:
  293. keuzeoptie = " (wit brood)"
  294. elif keuzeoptie_toast == 1:
  295. keuzeoptie = " (bruin brood)"
  296. elif keuzeoptie_toast == 2:
  297. keuzeoptie = " (grof brood)"
  298. gekozenonderdelen = gekozenonderdelen + "\n-" + "Toast - Kaas (€ "+str(itemprijs_toastkaas)+")" + keuzeoptie
  299. prijs_toast += itemprijs_toastkaas
  300. prijs_totaal = prijs_drank + prijs_eieren + prijs_toast + prijs_yoghurt
  301. print()
  302. print("Je keuzes:",gekozenonderdelen,sep="\n-")
  303. print("Totale prijs van je ontbijt = [€ ",prijs_totaal,"]",sep="")
  304. print()
  305. elif keuze_toast == 4:
  306. keuzeoptie_toast = int(input("Welke type brood? (0=wit,1=bruin,2=grof)? "))
  307. keuzeoptie = "" #keuzeoptie leegmaken voor vullen keuze
  308. if keuzeoptie_toast == 0:
  309. keuzeoptie = " (wit brood)"
  310. elif keuzeoptie_toast == 1:
  311. keuzeoptie = " (bruin brood)"
  312. elif keuzeoptie_toast == 2:
  313. keuzeoptie = " (grof brood)"
  314. gekozenonderdelen = gekozenonderdelen + "\n-" + "Toast - Vlees (€ "+str(itemprijs_toastvlees)+")" + keuzeoptie
  315. prijs_toast += itemprijs_toastvlees
  316. prijs_totaal = prijs_drank + prijs_eieren + prijs_toast + prijs_yoghurt
  317. print()
  318. print("Je keuzes:",gekozenonderdelen,sep="\n-")
  319. print("Totale prijs van je ontbijt = [€ ",prijs_totaal,"]",sep="")
  320. print()
  321. else:
  322. print() # toekomst voor opvangen foutcode andere input
  323.  
  324.  
  325. vraag("Stap 4: Wil je graag yoghurt eten?")
  326.  
  327. item(p,0,"<niets selecteren>",itemprijs_leeg)
  328. item(p,1,"Yoghurt puur natuur",itemprijs_yoghurtnatuur)
  329. item(p,2,"Yoghurt met gemengd fruit",itemprijs_yoghurtfruit)
  330. item(p,3,"Yoghurt met aardbeien",itemprijs_yoghurtaardbei)
  331. item(p,4,"Yoghurt met granola",itemprijs_yoghurtgranola)
  332. item(p,5,"Yoghurt met haver/muesli",itemprijs_yoghurthavermuesli)
  333. print()
  334.  
  335. if keuze_yoghurt == -1:
  336. keuze_yoghurt = int(input("Welk yoghurtgerecht kies je (0-1-2-3-4-5)? "))
  337.  
  338. if keuze_yoghurt == 0:
  339. gekozenonderdelen = gekozenonderdelen + "\n-" + "Geen yoghurt"
  340. prijs_yoghurt = itemprijs_leeg
  341. prijs_totaal = prijs_drank + prijs_eieren + prijs_toast + prijs_yoghurt
  342. print()
  343. print("Je keuzes:",gekozenonderdelen,sep="\n-")
  344. print("Totale prijs van je ontbijt = [€ ",prijs_totaal,"]",sep="")
  345. print()
  346. elif keuze_yoghurt == 1:
  347. gekozenonderdelen = gekozenonderdelen + "\n-" + "Yoghurt puur natuur (€ "+str(itemprijs_yoghurtnatuur)+")"
  348. prijs_yoghurt += itemprijs_yoghurtnatuur
  349. prijs_totaal = prijs_drank + prijs_eieren + prijs_toast + prijs_yoghurt
  350. print()
  351. print("Je keuzes:",gekozenonderdelen,sep="\n-")
  352. print("Totale prijs van je ontbijt = [€ ",prijs_totaal,"]",sep="")
  353. print()
  354. elif keuze_yoghurt == 2:
  355. gekozenonderdelen = gekozenonderdelen + "\n-" + "Yoghurt met gemengd fruit (€ "+str(itemprijs_yoghurtfruit)+")"
  356. prijs_yoghurt += itemprijs_yoghurtfruit
  357. prijs_totaal = prijs_drank + prijs_eieren + prijs_toast + prijs_yoghurt
  358. print()
  359. print("Je keuzes:",gekozenonderdelen,sep="\n-")
  360. print("Totale prijs van je ontbijt = [€ ",prijs_totaal,"]",sep="")
  361. print()
  362. elif keuze_yoghurt == 3:
  363. gekozenonderdelen = gekozenonderdelen + "\n-" + "Yoghurt met aardbeien (€ "+str(itemprijs_yoghurtaardbei)+")"
  364. prijs_yoghurt += itemprijs_yoghurtaardbei
  365. prijs_totaal = prijs_drank + prijs_eieren + prijs_toast + prijs_yoghurt
  366. print()
  367. print("Je keuzes:",gekozenonderdelen,sep="\n-")
  368. print("Totale prijs van je ontbijt = [€ ",prijs_totaal,"]",sep="")
  369. print()
  370. elif keuze_yoghurt == 4:
  371. gekozenonderdelen = gekozenonderdelen + "\n-" + "Yoghurt met granola (€ "+str(itemprijs_yoghurtgranola)+")"
  372. prijs_yoghurt += itemprijs_yoghurtgranola
  373. prijs_totaal = prijs_drank + prijs_eieren + prijs_toast + prijs_yoghurt
  374. print()
  375. print("Je keuzes:",gekozenonderdelen,sep="\n-")
  376. print("Totale prijs van je ontbijt = [€ ",prijs_totaal,"]",sep="")
  377. print()
  378. elif keuze_yoghurt == 5:
  379. gekozenonderdelen = gekozenonderdelen + "\n-" + "Yoghurt met haver/muesli (€ "+str(itemprijs_yoghurthavermuesli)+")"
  380. prijs_yoghurt += itemprijs_yoghurthavermuesli
  381. prijs_totaal = prijs_drank + prijs_eieren + prijs_toast + prijs_yoghurt
  382. print()
  383. print("Je keuzes:",gekozenonderdelen,sep="\n-")
  384. print("Totale prijs van je ontbijt = [€ ",prijs_totaal,"]",sep="")
  385. print()
  386. else:
  387. print() # toekomst voor opvangen foutcode andere input
  388.  
  389. titel("Bedankt om te kiezen voor onze ontbijtservice!")

Voorbeeld 1 output met diverse keuzes:

output_1_shell.txt
*******************************************************
* JOUW LEKKER ONTBIJT SAMENSTELLEN in enkele stappen! *
*******************************************************
 
Stap 1: Wat wil je graag drinken?
_________________________________
 
(0) <niets selecteren>
(1) [€ 3.8] Vers fruitsap
(2) [€ 3.0] Thee naar keuze
            + keuze: [+ € 0.3] melk
            + keuze: suiker
(3) [€ 3.3] Verse Koffie
            + keuze: [+ € 0.3] melk
            + keuze: suiker
 
Welke drank kies je (0-1-2-3)? 3
Welke je graag extra melk? (0=neen,1=ja)? 1
Welke je graag extra suiker? (0=neen,1=ja)? 1
 
Je keuzes:
-Verse koffie (€ 3.3) (met melk (€ 0.3),met suiker(€ 0))
Totale prijs van je ontbijt = [€ 3.5999999999999996]
 
 
Stap 2: Wil je graag eieren eten?
_________________________________
 
(0) <niets selecteren>
(1) [€ 7.0] Eieren: Roerei (2st)
(2) [€ 6.0] Eieren: Spiegelei (2st)
(3) [€ 5.0] Eieren: Gekookt ei (2st)
(4) [€ 9.0] Eieren: Spek met ei (2st)
 
Welk eiergerecht kies je (0-1-2-3-4)? 4
 
Je keuzes:
-Verse koffie (€ 3.3) (met melk (€ 0.3),met suiker(€ 0))
-Eieren - Spek met ei (€ 9.0)
Totale prijs van je ontbijt = [€ 12.6]
 
 
Stap 3: Wil je graag toast met beleg eten?
__________________________________________
 
(0) <niets selecteren>
(1) [€ 8.0] Toast met confituur
            + keuze: Wit / Bruin / Grof
(2) [€ 8.5] Toast met stroop
            + keuze: Wit / Bruin / Grof
(3) [€ 10] Toast met kaas
            + keuze: Wit / Bruin / Grof
(4) [€ 10] Toast met vlees
            + keuze: Wit / Bruin / Grof
 
Welk toast met beleg kies je (0-1-2-3-4)? 3
Welke type brood? (0=wit,1=bruin,2=grof)? 1
 
Je keuzes:
-Verse koffie (€ 3.3) (met melk (€ 0.3),met suiker(€ 0))
-Eieren - Spek met ei (€ 9.0)
-Toast - Kaas (€ 10) (bruin brood)
Totale prijs van je ontbijt = [€ 22.6]
 
 
Stap 4: Wil je graag yoghurt eten?
__________________________________
 
(0) <niets selecteren>
(1) [€ 4] Yoghurt puur natuur
(2) [€ 7.5] Yoghurt met gemengd fruit
(3) [€ 7.5] Yoghurt met aardbeien
(4) [€ 7.0] Yoghurt met granola
(5) [€ 6.5] Yoghurt met haver/muesli
 
Welk yoghurtgerecht kies je (0-1-2-3-4-5)? 4
 
Je keuzes:
-Verse koffie (€ 3.3) (met melk (€ 0.3),met suiker(€ 0))
-Eieren - Spek met ei (€ 9.0)
-Toast - Kaas (€ 10) (bruin brood)
-Yoghurt met granola (€ 7.0)
Totale prijs van je ontbijt = [€ 29.6]
 
 
**************************************************
* Bedankt om te kiezen voor onze ontbijtservice! *
**************************************************

Voorbeeld 2 output met diverse keuzes:

output_2_shell.txt
*******************************************************
* JOUW LEKKER ONTBIJT SAMENSTELLEN in enkele stappen! *
*******************************************************
 
Stap 1: Wat wil je graag drinken?
_________________________________
 
(0) <niets selecteren>
(1) [€ 3.8] Vers fruitsap
(2) [€ 3.0] Thee naar keuze
            + keuze: [+ € 0.3] melk
            + keuze: suiker
(3) [€ 3.3] Verse Koffie
            + keuze: [+ € 0.3] melk
            + keuze: suiker
 
Welke drank kies je (0-1-2-3)? 1
 
Je keuzes:
-Vers fruitsap (€ 3.8)
Totale prijs van je ontbijt = [€ 3.8]
 
 
Stap 2: Wil je graag eieren eten?
_________________________________
 
(0) <niets selecteren>
(1) [€ 7.0] Eieren: Roerei (2st)
(2) [€ 6.0] Eieren: Spiegelei (2st)
(3) [€ 5.0] Eieren: Gekookt ei (2st)
(4) [€ 9.0] Eieren: Spek met ei (2st)
 
Welk eiergerecht kies je (0-1-2-3-4)? 0
 
Je keuzes:
-Vers fruitsap (€ 3.8)
-Geen eieren
Totale prijs van je ontbijt = [€ 3.8]
 
 
Stap 3: Wil je graag toast met beleg eten?
__________________________________________
 
(0) <niets selecteren>
(1) [€ 8.0] Toast met confituur
            + keuze: Wit / Bruin / Grof
(2) [€ 8.5] Toast met stroop
            + keuze: Wit / Bruin / Grof
(3) [€ 10] Toast met kaas
            + keuze: Wit / Bruin / Grof
(4) [€ 10] Toast met vlees
            + keuze: Wit / Bruin / Grof
 
Welk toast met beleg kies je (0-1-2-3-4)? 0
 
Je keuzes:
-Vers fruitsap (€ 3.8)
-Geen eieren
-Geen toast
Totale prijs van je ontbijt = [€ 3.8]
 
 
Stap 4: Wil je graag yoghurt eten?
__________________________________
 
(0) <niets selecteren>
(1) [€ 4] Yoghurt puur natuur
(2) [€ 7.5] Yoghurt met gemengd fruit
(3) [€ 7.5] Yoghurt met aardbeien
(4) [€ 7.0] Yoghurt met granola
(5) [€ 6.5] Yoghurt met haver/muesli
 
Welk yoghurtgerecht kies je (0-1-2-3-4-5)? 5
 
Je keuzes:
-Vers fruitsap (€ 3.8)
-Geen eieren
-Geen toast
-Yoghurt met haver/muesli (€ 6.5)
Totale prijs van je ontbijt = [€ 10.3]
 
 
**************************************************
* Bedankt om te kiezen voor onze ontbijtservice! *
**************************************************

Voorbeeld 3 output met andere keuzes:

output_3_shell.txt
*******************************************************
* JOUW LEKKER ONTBIJT SAMENSTELLEN in enkele stappen! *
*******************************************************
 
Stap 1: Wat wil je graag drinken?
_________________________________
 
(0) <niets selecteren>
(1) [€ 3.8] Vers fruitsap
(2) [€ 3.0] Thee naar keuze
            + keuze: [+ € 0.3] melk
            + keuze: suiker
(3) [€ 3.3] Verse Koffie
            + keuze: [+ € 0.3] melk
            + keuze: suiker
 
Welke drank kies je (0-1-2-3)? 2
Welke je graag extra melk? (0=neen,1=ja)? 1
Welke je graag extra suiker? (0=neen,1=ja)? 1
 
Je keuzes:
-Thee naar keuze (€ 3.0) (met melk (€ 0.3),met suiker(€ 0))
Totale prijs van je ontbijt = [€ 3.3]
 
 
Stap 2: Wil je graag eieren eten?
_________________________________
 
(0) <niets selecteren>
(1) [€ 7.0] Eieren: Roerei (2st)
(2) [€ 6.0] Eieren: Spiegelei (2st)
(3) [€ 5.0] Eieren: Gekookt ei (2st)
(4) [€ 9.0] Eieren: Spek met ei (2st)
 
Welk eiergerecht kies je (0-1-2-3-4)? 1
 
Je keuzes:
-Thee naar keuze (€ 3.0) (met melk (€ 0.3),met suiker(€ 0))
-Eieren - Roerei (€ 7.0)
Totale prijs van je ontbijt = [€ 10.3]
 
 
Stap 3: Wil je graag toast met beleg eten?
__________________________________________
 
(0) <niets selecteren>
(1) [€ 8.0] Toast met confituur
            + keuze: Wit / Bruin / Grof
(2) [€ 8.5] Toast met stroop
            + keuze: Wit / Bruin / Grof
(3) [€ 10] Toast met kaas
            + keuze: Wit / Bruin / Grof
(4) [€ 10] Toast met vlees
            + keuze: Wit / Bruin / Grof
 
Welk toast met beleg kies je (0-1-2-3-4)? 3
Welke type brood? (0=wit,1=bruin,2=grof)? 2
 
Je keuzes:
-Thee naar keuze (€ 3.0) (met melk (€ 0.3),met suiker(€ 0))
-Eieren - Roerei (€ 7.0)
-Toast - Kaas (€ 10) (grof brood)
Totale prijs van je ontbijt = [€ 20.3]
 
 
Stap 4: Wil je graag yoghurt eten?
__________________________________
 
(0) <niets selecteren>
(1) [€ 4] Yoghurt puur natuur
(2) [€ 7.5] Yoghurt met gemengd fruit
(3) [€ 7.5] Yoghurt met aardbeien
(4) [€ 7.0] Yoghurt met granola
(5) [€ 6.5] Yoghurt met haver/muesli
 
Welk yoghurtgerecht kies je (0-1-2-3-4-5)? 2
 
Je keuzes:
-Thee naar keuze (€ 3.0) (met melk (€ 0.3),met suiker(€ 0))
-Eieren - Roerei (€ 7.0)
-Toast - Kaas (€ 10) (grof brood)
-Yoghurt met gemengd fruit (€ 7.5)
Totale prijs van je ontbijt = [€ 27.8]
 
 
**************************************************
* Bedankt om te kiezen voor onze ontbijtservice! *
**************************************************

Oefening op lijsten, while, variabelen, print(), input(), if elif else, rekenkundige bewerkingen

  • Maak een script met naam Python_oef06_jenaam.py
  • Voorzie bovenaan 2 commentaarlijnen
    • Auteur: JouwNaam
    • Oef: python_oef06_jenaam.py
  • Lijsten vullen met maanden en raden en punten tellen
    • Maak een lege lijst 'maanden'.
    • In deze lijst voeg je willekeurig een aantal maanden toe. (bijvoorbeeld 3 of vier maanden; let op je syntax!).
    • Je vraagt nadien aan iemand om de 'maandenlijst' volledig te raden, en liefst in zo weinig mogelijk beurten.
      • Een gebruiker mag natuurlijk enkel maar 'geldige' maanden invullen. Je kan die 'mogelijke maanden' ook in een andere lijst opnemen, en dan controleren of een gebruiker een waarde intypt die in die lijst voorkomt. Dus als de gebruiker een ander woord invult dat géén maand is, krijg je een foutmelding en moet de gebruiker iets nieuws proberen in te geven.
      • Als de gebruiker een maand ingeeft die nog niet in de lijst staat, dan voeg je de maand toe aan de lijst.
      • Als de gebruiker een maand ingeeft die al wel in de lijst staat, dan geef je een melding dat die reeds bestaat.
      • Na elke raadbeurt krijg je een overzicht van de skore:
        Beurten: ?? Gevonden ?? Te raden: ??
      • Als iemand alle twaalf de maanden heeft geraden is de oefening klaar. Je toont dan een einde-mededeling en de totale aantal beurten als score. Nadien stopt de uitvoering.
  • Voorzie commentaarlijnen in je code voor meer duidelijkheid
  • Voorzie witregels bij de uitvoering voor meer duidelijkheid
  • Uitbreiding1: pas je script zo aan dat je met twee mensen kan spelen:
    • Speler 1 geeft eerst willekeurig drie maanden in om de reeds gerade maanden klaar te zetten voor speler 2.
    • Speler 2 kijkt ondertussen natuurlijk niet mee! Nadat speler 1 klaar is kan speler 2 beginnen raden.
    • Herstart op het einde je programma en wissel van taak tussen de spelers.
  • Uitbreiding2 (optioneel, maar sterk aanbevolen): Werk eens een andere variant van dit spel uit
    • Sla je opdracht op onder een andere naam; denk even na over deze opdracht, een goede brainstorm is een goede basis voor je start.
    • Voorzie een lijst met bijvoorbeeld 25 (of 50) dierennamen waar men van kan raden. Elke keer iemand een dier raadt dat op die lijst voorkomt komt die op de geradenlijst, en probeer zo snel mogelijk bijvoorbeeld 5 of 10 dieren te raden. Je zou eventueel ook een score kunnen integreren: om mensen te stimuleren om langere dierennamen te raden kan je per woordlengte (aantal letters) een score laten uitrekenen die je telkens bij je totaalscore krijgt.
    • Een andere variant zou kunnen zijn met kleuren, of met fruit, of landen, of hoofdsteden, of …
    • Of een variant waar je naar een getal kan raden en als tip krijg je elke keer hoger/lager…, en je moet bijvoorbeeld 3 getallen van een lijst raden.

Verbetersleutel

Tips bij gebruik van de verbetersleutel:

  • Maak eerst zelf je oefening volledig af. Probeer écht zelf tot een oplossing te komen: test, probeer, zoek op, lees, controleer,…
  • Raadpleeg indien nodig je naslagwerk en online bronnen, of vraag nadien eventueel feedback aan je leerkracht.
  • Probeer het gebruik van de verbetersleutel uit te stellen tot je helemaal klaar bent.
  • Van gewoon maar oplossingen overnemen leer je immers weinig tot niets bij.

OK, ik volg bovenstaande tips! Toon mij de verbetersleutel.

python_oef06_jenaam.py
  1. # Auteur: Raf Aendekerk
  2. # App: python_oef06_jenaam.py
  3.  
  4. # volgende maanden staan reeds in de lijst (kan je aanpassen indien gewenst)
  5. # in de uitbreiding zal je deze automatisch vullen door input van speler1, speler2 raadt nadien verder...
  6. maanden = ["mei","september","november","december"]
  7.  
  8. # dit zijn alle mogelijke maanden die iemand kan ingeven, deze lijst wordt als controlelijst gebruikt.
  9. mogelijkemaanden = ["januari",
  10. "februari",
  11. "maart",
  12. "april",
  13. "mei",
  14. "juni",
  15. "juli",
  16. "augustus",
  17. "september",
  18. "oktober",
  19. "november",
  20. "december"]
  21. # zet het aantal beurten voor elke uitvoering van het programma weer op 0
  22. aantalbeurten = 0
  23.  
  24. # toon de startinformatie + hoeveel maanden er reeds gekend zijn
  25. print("Raad de volledige maandenlijst!")
  26. print("Er zijn reeds",len(maanden),"maanden gekend... Veel succes!\n")
  27.  
  28. # voorwaarde: zolang de lijst minder dan 12 maanden bevat blijf je een loop uitvoeren
  29. while len(maanden) < 12 :
  30. # maak een variabele waar je de ingevoerde maand gaat controleren tov de lijst met maanden
  31. maandcontrole = input("Welke maand wil je toevoegen/raden? ")
  32. # als de ingevoerde maand voorkomt op de lijst, ga dan verder
  33. if (mogelijkemaanden.count(maandcontrole) == 1):
  34. # als de ingevoerde maand al wel geraden was en dus bestaat, tel beurt op, mededeling
  35. if (maanden.count(maandcontrole) == 1) :
  36. aantalbeurten+=1
  37. print ("\nJammer, maar deze maand komt al in de lijst voor. Probeer opnieuw!\n")
  38. print ("Beurten:",aantalbeurten," Gevonden:",len(maanden)," Te raden:",12-len(maanden),"\n")
  39. # als de ingevoerde maand nog niet geraden was, toevoegen en beurt tellen.
  40. if (maanden.count(maandcontrole) < 1) :
  41. aantalbeurten+=1
  42. maanden.append(maandcontrole) # voeg de ingevoerde maand toe aan de lijst met gerade maanden
  43. print ("\nDeze maand werd toegevoegd, doe zo verder!")
  44. print ("Beurten:",aantalbeurten," Gevonden:",len(maanden)," Te raden:",12-len(maanden),"\n")
  45. # maanden.sort() # deze actie kan je eventueel toevoegen om te sorteren
  46. # print (maanden) # deze actie kan je eventueel toevoegen om te controleren/testen
  47. # als de ingevoerde maand niet voorkomt op de lijst, toon dan de foutmelding
  48. else :
  49. print("\nJe gaf geen geldige maand in. Geef enkel maanden in. \n")
  50.  
  51. # deze code is het einde: vanaf 12 geraden maanden:
  52. print("Proficiat, je hebt alle maanden gevonden!")
  53. print("Je hebt daarvoor",aantalbeurten,"raadbeurten nodig gehad!")

Hieronder de start van de uitvoering:

output_1_shell.txt
Raad de volledige maandenlijst!
Er zijn reeds 4 maanden gekend... Veel succes!
 
Welke maand wil je toevoegen/raden? januari
 
Deze maand werd toegevoegd, doe zo verder!
Beurten: 1  Gevonden: 5  Te raden: 7 
 
Welke maand wil je toevoegen/raden? maart
 
Deze maand werd toegevoegd, doe zo verder!
Beurten: 2  Gevonden: 6  Te raden: 6 
 
Welke maand wil je toevoegen/raden? september
 
Jammer, maar deze maand komt al in de lijst voor. Probeer opnieuw!
 
Beurten: 3  Gevonden: 6  Te raden: 6 
 
Welke maand wil je toevoegen/raden?

Hieronder het einde als alle maanden geraden zijn:

output_2_shell.txt
Welke maand wil je toevoegen/raden? september
 
Jammer, maar deze maand komt al in de lijst voor. Probeer opnieuw!
 
Beurten: 11  Gevonden: 11  Te raden: 1 
 
Welke maand wil je toevoegen/raden? oktober
 
Deze maand werd toegevoegd, doe zo verder!
Beurten: 12  Gevonden: 12  Te raden: 0 
 
Proficiat, je hebt alle maanden gevonden!
Je hebt daarvoor 12 raadbeurten nodig gehad!

Oefening op random module, while, variabelen, print(), input(), if elif else, rekenkundige bewerkingen, functies

  • Maak een script met naam Python_oef07_jenaam.py
  • Voorzie bovenaan 2 commentaarlijnen
    • Auteur: JouwNaam
    • Oef: python_oef07_jenaam.py
  • Raadspel met ook een computer-tegenstander en punten tellen
    • Je speelt een raadspel met/tegen de computer. Het spel verloopt als volgt:
      • De computer geeft bij de start een omschrijving van het spel
      • Jij bent als speler eerst aan de beurt.
        • De computer heeft voor jou een random getal gekozen (tussen 0 en 100).
        • Jouw score/teller staat op nul, en dat wordt netjes getoond aan het begin
        • Je krijgt de vraag om naar het getal van de computer te raden.
        • Geef je een getal op dat te hoog is, dan zegt de computer dat het 'te zoeken getal' lager is dan jouw keuze.
        • Geef je een getal op dat te laag is, dan zegt de computer dat het 'te zoeken getal' hoger moet zijn dan je huidige keuze.
        • Dit blijft zo doorgaan tot je exact het juiste getal hebt gekozen.
        • Natuurlijk krijg je per antwoord ook je huidige score te zien, het is te zeggen: elke keer dat iets hebt geraden is één beurt.
        • Op het einde krijg je een totaalscore te zien; bijvoorbeeld: “Jij hebt mijn getal geraden binnen … beurten. Nu is het mijn beurt!”
      • Nu is het de beurt aan de computer
        • De computer vraagt aan jou om een getal dat hij moet beginnen raden, terug een getal tussen 0 en 100.
        • Jij geeft dit getal in, de computer plaatst het in een variabele en zal op basis van die waarde zijn eigen raadsels aftoetsen.
        • Nu genereert de computer een willekeurig getal (= zijn raadbeurt) tussen 0 en 100.
        • Dit getal controleert hij met jouw opgegeven getal dat hij zal moeten raden.
          • Is zijn random getal te hoog, dan zal hij lager moeten raden
          • Is zijn random getal te laag, dan zal hij hoger moeten raden
          • Op basis van zijn 'raadsels' en 'hoger' of 'lager', zal de computer nu weten dat hij tussen lagere waarden moet raden.
        • Een voorbeeld om dit duidelijk te maken:
          • Jij geeft in: 62 (= getal dat computer moet raden)
          • De eerste beurt van de computer: de computer raadt een willekeurig getal tussen 0 en 100, en dit getal is bijvoorbeeld 33
          • Nu weet de computer dat hij hoger moet raden, want 33 is kleiner dan 62.
          • In de volgende beurt weet de computer dus dat hij een willekeurig getal tussen 33 en 100 moet raden.
          • De volgende keer raadt de computer een willekeurig getal tussen 33 en 100, en dit getal is 72.
          • Nu weet de computer dat hij lager moet raden, want 72 is hoger dan 62.
          • In zijn volgende beuert weet de computer dus dat hij een willekeurig getal moet zoeken tussen 33 en 72…
        • Dit herhaalt zich natuurlijk keer op keer tot de computer exact jouw getal heeft geraden.
        • Je houdt ook voor de computer zijn score bij.
        • Als zowel jij als de computer een raad-beurt hebt gehad, is het spel in principe over.
        • Degene met de laagste raadscore is gewonnen, want die kon het snelste de andere zijn getal raden.
      • Na elke raadbeurt krijg je een overzicht van de skore; eventueel plaats je jouw eigen score naast die van de computer. Dat houdt het spannend!
  • Voorzie commentaarlijnen in je code voor meer duidelijkheid
  • Voorzie witregels bij de uitvoering voor meer duidelijkheid
  • Uitbreiding1: pas je script aan dat er in het totaal 3 rondes zijn.
    • Er worden dus automatisch bij één programma uitvoering 3 rondes gespeeld.
    • Deze rondes verlopen afwisselend
      • R1: eerst speler, dan computer, idem voor R2 en R3.
    • Er wordt telkens een mooie tussenscore getoond.
    • Degene met de twee beste scores (dus minstens twee rondes gewonnen) zal het spel winnen.
    • Eventueel toon je ook een bonusvermeldign voor de 'allerbeste/snelste' score, ongeacht de winnaar.
  • Uitbreiding2
    • Op het einde na de drie beurten begint het spel automatisch opnieuw, maar worden alle scores terug op nul gezet
    • Als eerste vraag wordt nu ook om je naam gevraagd. Jouw naam zal overal in het programma gebruikt worden bij getoonde scores.
    • Eventueel blijft zolang je programma actief is de beste score bewaard in het scorebord dat op het einde getoond wordt.
    • Zorg er in deze uitbreiding ook voor dat naast je naam aan de start ook gevraagd wordt 'tot welk getal' het raadspel mag gaan, geef je bijvoorbeeld 500 op, of 1000, dan zal het raadspel gedurende héél die uitvoering met die limieten gespeeld worden.
    • Je probeert feedback te voorzien als men een getal in vult dat niet gepast is, bijvoorbeeld je moet een getal ingeven tussen 0 en 100, dus getal 166 is dan niet toegestaan onder het huidige raadspel. Als het spel zou gaan over getallen tussen 0 en 250 of tussen 0 en 1000 mag dat natuurlijk wel.
  • Uitbreiding3
    • Kan je op basis van bijvoorbeeld onderstaande code aan de slag om bepaalde onderdelen te gaan herschrijven/herwerken in functies? Test hier mee uit en werk eens een voorbeeld uit.
      • bijvoorbeeld: validatie input of het een getal is, positief is, groter is, kleiner is, …
      • bijvoorbeeld: om feedback op je scherm te tonen. We hebben recent in de klas de oefening gemaakt om van een lijst met 'zinnen' telkens een random zin te halen die je kan gebruiken voor feedback. Probeer bijvoorbeeld in deze oefening eens een lijst met x-aantal feedback regels te schrijven voor het raden, of voor het scorebord, of voor … waar je dan 'random' zinnen uit gebruikt voor je raadspel. Zo wordt het raadspel telkens 'uniek'
      • bijvoorbeeld: kan je een andere manier verzinnen om een automatische moeilijkheidsgraad te verkrijgen? bv telkens het maximum getal x2 of x5 of x10 doen. Met elke extra 'ronde' wordt het spel dan automatisch moeilijker…
        • niveau 0 = een getal raden tussen 0 en 25
        • niveau 1 = een getal raden tussen 0 en 100
        • niveau 2 = een getal raden tussen 0 en 500
        • niveau 10 = een getal raden tussen 0 en 10000
  • Uitbreiding4
    • Kan je er voor zorgen dat 'gebruiker' wordt vervangen door de naam van de gebruiker die hij ingeeft aan de start van het spel
    • Kan je er voor zorgen dat de 'naam' van de 'computerspeler' gekozen wordt van een random lijst met '50 verschillende computernamen'? Je kan op internet heel wat 'generators' vinden om bijvoorbeeld random namen te genereren. Je kan die gebruiken, of misschien kan je op basis van bestaande namen zelf een lijstje genereren?
    • Kan je zelf nog leuke aanvullingen doen in een uitbreiding?

Verbetersleutel

Tips bij gebruik van de verbetersleutel:

  • Maak eerst zelf je oefening volledig af. Probeer écht zelf tot een oplossing te komen: test, probeer, zoek op, lees, controleer,…
  • Raadpleeg indien nodig je naslagwerk en online bronnen, of vraag nadien eventueel feedback aan je leerkracht.
  • Probeer het gebruik van de verbetersleutel uit te stellen tot je helemaal klaar bent.
  • Van gewoon maar oplossingen overnemen leer je immers weinig tot niets bij.

OK, ik volg bovenstaande tips! Toon mij de verbetersleutel.

python_oef07_jenaam.py
  1. # Auteur: Raf Aendekerk
  2. # App: python_oef07_jenaam.py
  3. #
  4. # Oefeningen raadspel tegen de computer (if elif keuzes)
  5.  
  6. # imports
  7. import time
  8. import random
  9.  
  10. # functie om een titel met opmaak te tonen
  11. def titel(tekst):
  12. lijn = "*" * (len(tekst)+4)
  13. print(lijn)
  14. print("*",tekst,"*")
  15. print(lijn)
  16.  
  17. # functie om een vraag met onderlijning te tonen
  18. def subtitel(tekst):
  19. lijn = "_" * len(tekst)
  20. print()
  21. print(tekst)
  22. print(lijn)
  23. print()
  24.  
  25. # vul variabelen met een standaard waarde
  26. minimumgetaldefault = 0 #standaard is kleinste getal 0
  27. maximumgetaldefault = 25 #standaard is grootste getal 10
  28. aantalrondes = 3
  29. gekozengetal = -1
  30. gebruiker_score = []
  31. computer_score = []
  32.  
  33. titel("Raadspel: neem het op tegen 'de computer'!")
  34.  
  35. validatierondes = 0
  36. while int(validatierondes) != 1:
  37. aantalrondeskeuze = input("Hoeveel rondes wil je spelen? Geef een oneven getal op >1 (default: "+str(aantalrondes)+"): ")
  38. if str(aantalrondeskeuze) == "" :
  39. aantalrondes = aantalrondes
  40. print("\nDit worden",aantalrondes,"spannende rondes!")
  41. validatierondes = 1
  42. else:
  43. try:
  44. if int(aantalrondeskeuze) % 2 != 0:
  45. if int(aantalrondeskeuze) <=1:
  46. print("Geef een groter oneven getal op!")
  47. else:
  48. aantalrondes = int(aantalrondeskeuze)
  49. print("\nDit worden",aantalrondes,"spannende rondes!")
  50. validatierondes = 1
  51. else:
  52. print(aantalrondeskeuze,"is een even getal, geef een oneven getal in!")
  53. except ValueError:
  54. print("Je hebt géén getal ingevoerd; voeg een getal in!")
  55.  
  56. subtitel("Veel succes bij deze spannende krachtmeting!")
  57.  
  58. rondehuidig = 1
  59. while rondehuidig <= aantalrondes:
  60. titel("> Ronde "+str(rondehuidig)+" van "+str(aantalrondes)+":")
  61. validatiekeuze = 0
  62. while int(validatiekeuze) != 2:
  63.  
  64. validatiegetal1 = 0
  65. while int(validatiegetal1) != 1:
  66. minimumgetal_invoer = input("Geef een minimumgetal op of bevestig (default: "+str(minimumgetaldefault)+"): ")
  67. if str(minimumgetal_invoer) == "" :
  68. minimumgetal = minimumgetaldefault
  69. validatiegetal1 = 1
  70. else:
  71. try:
  72. minimumgetal = int(minimumgetal_invoer)
  73. validatiegetal1 = 1
  74. #minimumgetal = minimumgetal_invoer
  75. except ValueError:
  76. print("Je hebt géén getal ingevoerd; voeg een getal in!")
  77.  
  78. validatiegetal2 = 0
  79. while int(validatiegetal2) != 1:
  80. maximumgetal_invoer = input("Geef een maximumgetal op of bevestig (default: "+str(maximumgetaldefault)+"): ")
  81. if str(maximumgetal_invoer) == "" :
  82. maximumgetal = maximumgetaldefault
  83. validatiegetal2 = 1
  84. else:
  85. try:
  86. maximumgetal = int(maximumgetal_invoer)
  87. #maximumgetal = maximumgetal_invoer
  88. validatiegetal2 = 1
  89. except ValueError:
  90. print("Je hebt géén getal ingevoerd; voeg een getal in!")
  91.  
  92. if int(maximumgetal) - int(minimumgetal) >= 25:
  93. validatiekeuze = 2
  94. else:
  95. print("Kies 2 getallen die wat verder uit elkaar liggen.")
  96. minimumgetal = minimumgetaldefault
  97. maximumgetal = maximumgetaldefault
  98.  
  99. print("\nDe computer kiest een getal tussen",str(minimumgetal),"en",str(maximumgetal),"...")
  100. willekeuriggetal_computer = random.randint(int(minimumgetal),int(maximumgetal))
  101. time.sleep(1)
  102.  
  103. # print(">>> randomkeuze:",willekeuriggetal_computer,"tussen min:",str(minimumgetal),"en max:",str(maximumgetal),"val:",validatiekeuze,"#testwaarden_nogweghalen_debuggen","\n") #tijdelijk voor controle; later verbergen!
  104.  
  105. print("De computer heeft een getal gekozen, jij mag eerst raden!\n")
  106.  
  107. gebruiker_beurt = 0
  108. gebruiker_bestescore = 0
  109.  
  110. # beurt gebruiker
  111. while (str(gekozengetal) != str(willekeuriggetal_computer)):
  112. vraaginvoer = "Welk getal wil je kiezen (van " +str(minimumgetal) + " tot " +str(maximumgetal) +")(q=sluit)? "
  113. gekozengetal = input(vraaginvoer)
  114. gebruiker_beurt += 1
  115. if str(gekozengetal) =="q":
  116. print("OK, ik sluit het spel af, maar ... je bent dus wel verloren van mij!!!")
  117. gebruiker_beurt += 50
  118. break
  119. elif (str(gekozengetal) == ""):
  120. print("Het is echt nodig dat je een getal invult om te raden!")
  121. elif (int(gekozengetal) < int(minimumgetal)):
  122. print("FOUT! kies tussen de opgegeven waarden!(ondergrens)")
  123. elif (int(gekozengetal) > int(maximumgetal)):
  124. print("FOUT! kies tussen de opgegeven waarden!(bovengrens)")
  125. else:
  126. if (int(gekozengetal) == int(willekeuriggetal_computer)):
  127. print("YESS geraden!","(in",gebruiker_beurt,"beurten)")
  128. gebruiker_score.append(gebruiker_beurt)
  129. print("")
  130. #punten nog toevoegen en berekenen
  131. elif (int(gekozengetal) < int(willekeuriggetal_computer)):
  132. print("Je hebt te laag geraden, mijn willekeurig getal is hoger!","(#",gebruiker_beurt,")\n")
  133. #print("(#",gebruiker_beurt,"beurten)")
  134. #punten nog toevoegen en berekenen
  135. elif (int(gekozengetal) > int(willekeuriggetal_computer)):
  136. print("Je hebt te hoog geraden, mijn willekeurig getal is lager!","(#",gebruiker_beurt,")\n")
  137. #print("(#",gebruiker_beurt,"beurten)")
  138. #punten nog toevoegen en berekenen
  139.  
  140. #beurt computer
  141. vraaginvoer = "\nWelk willekeurig getal wil jij laten raden (van " +str(minimumgetal) + " tot " +str(maximumgetal) +")? "
  142. willekeuriggetal_gebruiker = input(vraaginvoer)
  143.  
  144. #print(">>> randomkeuze:",willekeuriggetal_gebruiker,"tussen min:",str(minimumgetal),"en max:",str(maximumgetal),"val:",validatiekeuze,"#testwaarden_nogweghalen_debuggen","\n") #tijdelijk voor controle; later verbergen!
  145. #random.randint(int(minimumgetal),int(maximumgetal))
  146.  
  147. time.sleep(1)
  148.  
  149. minimumgetal_ai = int(minimumgetal)
  150. maximumgetal_ai = int(maximumgetal)
  151. gekozengetal = -1
  152. computer_beurt = 0
  153. computer_bestescore = 0
  154.  
  155. while (str(gekozengetal) != str(willekeuriggetal_gebruiker)):
  156. vraaginvoer = "Welk getal wil je kiezen (van " +str(minimumgetal) + " tot " +str(maximumgetal) +")? "
  157. gekozengetal = random.randint(int(minimumgetal_ai),int(maximumgetal_ai))
  158. computer_beurt += 1
  159. time.sleep(1)
  160. print("Ik raad getal ... ", gekozengetal,"?")
  161. time.sleep(1)
  162. if (int(gekozengetal) == int(willekeuriggetal_gebruiker)):
  163. print("YESS geraden!","(in",computer_beurt,"beurten)")
  164. computer_score.append(computer_beurt)
  165. print("")
  166. #punten nog toevoegen en berekenen
  167. elif (int(gekozengetal) < int(willekeuriggetal_gebruiker)):
  168. print("Je hebt te laag geraden, mijn willekeurig getal is hoger!","(#",computer_beurt,")\n")
  169. #print("(#",computer_beurt,"beurten)")
  170. #print("o:",minimumgetal_ai,maximumgetal_ai)
  171. minimumgetal_ai = gekozengetal+1
  172. #print("n:",minimumgetal_ai,maximumgetal_ai,"#testwaarden_nogweghalen_debuggen")
  173. #punten nog toevoegen en berekenen
  174. elif (int(gekozengetal) > int(willekeuriggetal_gebruiker)):
  175. print("Je hebt te hoog geraden, mijn willekeurig getal is lager!","(#",computer_beurt,")\n")
  176. #print("(#",computer_beurt,"beurten)")
  177. #print("o:",minimumgetal_ai,maximumgetal_ai)
  178. maximumgetal_ai = gekozengetal-1
  179. #print("n:",minimumgetal_ai,maximumgetal_ai,"#testwaarden_nogweghalen_debuggen")
  180.  
  181. #punten nog toevoegen en berekenen
  182.  
  183. subtitel("Samenvatting")
  184.  
  185. if int(computer_beurt) == int(gebruiker_beurt):
  186. print("OEF, gelijk spel; we spelen nog rondes om te beslissen...")
  187. elif int(computer_beurt) > int(gebruiker_beurt):
  188. print("Jij hebt van mij gewonnen :-(")
  189. print("Jij kon mijn getal raden in",gebruiker_beurt,"beurten.")
  190. print("Ik kon jouw getal pas raden in",computer_beurt,"beurten.")
  191. print("Je was duidelijk de sterkere!!!")
  192. elif int(computer_beurt) < int(gebruiker_beurt):
  193. print("Ik heb van jou gewonnen :-)")
  194. print("Jij kon mijn getal raden in",gebruiker_beurt,"beurten.")
  195. print("Maar ik kon het al raden in",computer_beurt,"beurten.")
  196. print("Ik was duidelijk de betere speler!!!")
  197. else:
  198. print("")
  199.  
  200. rondehuidig += 1
  201. print("")
  202.  
  203. subtitel("Scorelijsten")
  204.  
  205. gebruiker_score.sort(reverse=False)
  206. computer_score.sort(reverse=False)
  207.  
  208. print("Scores gebruiker:")
  209. gebruiker_score_totaal = 0
  210. for punt in gebruiker_score:
  211. print("TOP-score:",punt,"beurten")
  212. gebruiker_score_totaal += int(punt)
  213. print("")
  214.  
  215. print("Scores computer:")
  216. computer_score_totaal = 0
  217. for punt in computer_score:
  218. print("TOP-score:",punt,"beurten")
  219. computer_score_totaal += int(punt)
  220. print("")
  221.  
  222. if int(computer_score_totaal) == int(gebruiker_score_totaal):
  223. print("Bij gelijk spel (totaal punten), is de gene met de beste beurt de winnaar!")
  224. elif int(computer_score_totaal) > int(gebruiker_score_totaal):
  225. print("Jij hebt van mij gewonnen :-(")
  226. print("Jij kon mijn getallen raden in slechts",gebruiker_score_totaal,"beurten.")
  227. print("Ik kon jouw getallen pas raden in",computer_score_totaal,"beurten.")
  228. print("Proficiat!")
  229. elif int(computer_score_totaal) < int(gebruiker_score_totaal):
  230. print("Ik heb van jou gewonnen :-)")
  231. print("Jij kon mijn getallen raden in",gebruiker_score_totaal,"beurten.")
  232. print("Maar ik kon je getallen al raden in slechts",computer_score_totaal,"beurten.")
  233. print("Proficiat aan mezelf!")
  234. else:
  235. print("")
  236.  
  237. print("")
  238. titel("Dank je voor het spelen, dat was leuk! Tot binnenkort!")

Hieronder de start van de uitvoering. Merk wel op dat er in de uitvoering nog 2 regels voorkomen met als tekst “#testwaarden_nogweghalen_debuggen”. Dat zijn twee debugging regels die je als auteur kan toevoegen om bij de uitvoering te testen hoe je programma werkt. Natuurlijk moeten we die twee regels in de broncode nog als commentaar zetten als we de oefening willen afronden. Nu kan je deze informatie wel gebruiken om te testen of je bijvoorbeeld bij het raden juiste feedback krijgt.

output_1_shell.txt
**********************************************
* Raadspel: neem het op tegen 'de computer'! *
**********************************************
Hoeveel rondes wil je spelen? Geef een oneven getal op >1 (default: 3): 5
 
Dit worden 5 spannende rondes!
 
Veel succes bij deze spannende krachtmeting!
____________________________________________
 
********************
* > Ronde 1 van 5: *
********************
Geef een minimumgetal op of bevestig (default: 0): 
Geef een maximumgetal op of bevestig (default: 25): 100
 
De computer kiest een getal tussen 0 en 100 ...
>>> randomkeuze: 11 tussen min: 0 en max: 100 val: 2 #testwaarden_nogweghalen_debuggen 
 
De computer heeft een getal gekozen, jij mag eerst raden!
 
Welk getal wil je kiezen (van 0 tot 100)(q=sluit)? 50
Je hebt te hoog geraden, mijn willekeurig getal is lager! (# 1 )
 
Welk getal wil je kiezen (van 0 tot 100)(q=sluit)? 25
Je hebt te hoog geraden, mijn willekeurig getal is lager! (# 2 )
 
Welk getal wil je kiezen (van 0 tot 100)(q=sluit)? 15
Je hebt te hoog geraden, mijn willekeurig getal is lager! (# 3 )
 
Welk getal wil je kiezen (van 0 tot 100)(q=sluit)? 10
Je hebt te laag geraden, mijn willekeurig getal is hoger! (# 4 )
 
Welk getal wil je kiezen (van 0 tot 100)(q=sluit)? 13
Je hebt te hoog geraden, mijn willekeurig getal is lager! (# 5 )
 
Welk getal wil je kiezen (van 0 tot 100)(q=sluit)? 14
Je hebt te hoog geraden, mijn willekeurig getal is lager! (# 6 )
 
Welk getal wil je kiezen (van 0 tot 100)(q=sluit)? 12
Je hebt te hoog geraden, mijn willekeurig getal is lager! (# 7 )
 
Welk getal wil je kiezen (van 0 tot 100)(q=sluit)? 11
YESS geraden! (in 8 beurten)
 
 
Welk willekeurig getal wil jij laten raden (van 0 tot 100)? 71
>>> randomkeuze: 71 tussen min: 0 en max: 100 val: 2 #testwaarden_nogweghalen_debuggen 
 
Ik raad getal ...  20 ?
Je hebt te laag geraden, mijn willekeurig getal is hoger! (# 1 )
 
Ik raad getal ...  41 ?
Je hebt te laag geraden, mijn willekeurig getal is hoger! (# 2 )
 
Ik raad getal ...  63 ?
Je hebt te laag geraden, mijn willekeurig getal is hoger! (# 3 )
 
Ik raad getal ...  86 ?
Je hebt te hoog geraden, mijn willekeurig getal is lager! (# 4 )
 
Ik raad getal ...  69 ?
Je hebt te laag geraden, mijn willekeurig getal is hoger! (# 5 )
 
Ik raad getal ...  71 ?
YESS geraden! (in 6 beurten)
 
 
Samenvatting
____________
 
Ik heb van jou gewonnen :-)
Jij kon mijn getal raden in 8 beurten.
Maar ik kon het al raden in 6 beurten.
Ik was duidelijk de betere speler!!!
 
********************
* > Ronde 2 van 5: *
********************
Geef een minimumgetal op of bevestig (default: 0): 
Geef een maximumgetal op of bevestig (default: 25): 
 
De computer kiest een getal tussen 0 en 25 ...
>>> randomkeuze: 23 tussen min: 0 en max: 25 val: 2 #testwaarden_nogweghalen_debuggen 
 
De computer heeft een getal gekozen, jij mag eerst raden!
 
Welk getal wil je kiezen (van 0 tot 25)(q=sluit)? 15
Je hebt te laag geraden, mijn willekeurig getal is hoger! (# 1 )
 
Welk getal wil je kiezen (van 0 tot 25)(q=sluit)? 20
Je hebt te laag geraden, mijn willekeurig getal is hoger! (# 2 )
 
Welk getal wil je kiezen (van 0 tot 25)(q=sluit)? 22
Je hebt te laag geraden, mijn willekeurig getal is hoger! (# 3 )
 
Welk getal wil je kiezen (van 0 tot 25)(q=sluit)? 24
Je hebt te hoog geraden, mijn willekeurig getal is lager! (# 4 )
 
Welk getal wil je kiezen (van 0 tot 25)(q=sluit)? 23
YESS geraden! (in 5 beurten)
 
 
Welk willekeurig getal wil jij laten raden (van 0 tot 25)? 1
>>> randomkeuze: 1 tussen min: 0 en max: 25 val: 2 #testwaarden_nogweghalen_debuggen 
 
Ik raad getal ...  23 ?
Je hebt te hoog geraden, mijn willekeurig getal is lager! (# 1 )
 
Ik raad getal ...  21 ?
Je hebt te hoog geraden, mijn willekeurig getal is lager! (# 2 )
 
Ik raad getal ...  4 ?
Je hebt te hoog geraden, mijn willekeurig getal is lager! (# 3 )
 
Ik raad getal ...  3 ?
Je hebt te hoog geraden, mijn willekeurig getal is lager! (# 4 )
 
Ik raad getal ...  2 ?
Je hebt te hoog geraden, mijn willekeurig getal is lager! (# 5 )
 
Ik raad getal ...  1 ?
YESS geraden! (in 6 beurten)
 
 
Samenvatting
____________
 
Jij hebt van mij gewonnen :-(
Jij kon mijn getal raden in 5 beurten.
Ik kon jouw getal pas raden in 6 beurten.
Je was duidelijk de sterkere!!!
 
********************
* > Ronde 3 van 5: *
********************
Geef een minimumgetal op of bevestig (default: 0): 
Geef een maximumgetal op of bevestig (default: 25): 
 
De computer kiest een getal tussen 0 en 25 ...
>>> randomkeuze: 24 tussen min: 0 en max: 25 val: 2 #testwaarden_nogweghalen_debuggen 
 
De computer heeft een getal gekozen, jij mag eerst raden!
 
Welk getal wil je kiezen (van 0 tot 25)(q=sluit)? 20
Je hebt te laag geraden, mijn willekeurig getal is hoger! (# 1 )
 
Welk getal wil je kiezen (van 0 tot 25)(q=sluit)? 24
YESS geraden! (in 2 beurten)
 
 
Welk willekeurig getal wil jij laten raden (van 0 tot 25)? 0
>>> randomkeuze: 0 tussen min: 0 en max: 25 val: 2 #testwaarden_nogweghalen_debuggen 
 
Ik raad getal ...  21 ?
Je hebt te hoog geraden, mijn willekeurig getal is lager! (# 1 )
 
Ik raad getal ...  1 ?
Je hebt te hoog geraden, mijn willekeurig getal is lager! (# 2 )
 
Ik raad getal ...  0 ?
YESS geraden! (in 3 beurten)
 
 
Samenvatting
____________
 
Jij hebt van mij gewonnen :-(
Jij kon mijn getal raden in 2 beurten.
Ik kon jouw getal pas raden in 3 beurten.
Je was duidelijk de sterkere!!!
 
********************
* > Ronde 4 van 5: *
********************
Geef een minimumgetal op of bevestig (default: 0): 
Geef een maximumgetal op of bevestig (default: 25): 
 
De computer kiest een getal tussen 0 en 25 ...
>>> randomkeuze: 15 tussen min: 0 en max: 25 val: 2 #testwaarden_nogweghalen_debuggen 
 
De computer heeft een getal gekozen, jij mag eerst raden!
 
Welk getal wil je kiezen (van 0 tot 25)(q=sluit)? 17
Je hebt te hoog geraden, mijn willekeurig getal is lager! (# 1 )
 
Welk getal wil je kiezen (van 0 tot 25)(q=sluit)? 14
Je hebt te laag geraden, mijn willekeurig getal is hoger! (# 2 )
 
Welk getal wil je kiezen (van 0 tot 25)(q=sluit)? 15
YESS geraden! (in 3 beurten)
 
 
Welk willekeurig getal wil jij laten raden (van 0 tot 25)? 19
>>> randomkeuze: 19 tussen min: 0 en max: 25 val: 2 #testwaarden_nogweghalen_debuggen 
 
Ik raad getal ...  15 ?
Je hebt te laag geraden, mijn willekeurig getal is hoger! (# 1 )
 
Ik raad getal ...  16 ?
Je hebt te laag geraden, mijn willekeurig getal is hoger! (# 2 )
 
Ik raad getal ...  25 ?
Je hebt te hoog geraden, mijn willekeurig getal is lager! (# 3 )
 
Ik raad getal ...  18 ?
Je hebt te laag geraden, mijn willekeurig getal is hoger! (# 4 )
 
Ik raad getal ...  19 ?
YESS geraden! (in 5 beurten)
 
 
Samenvatting
____________
 
Jij hebt van mij gewonnen :-(
Jij kon mijn getal raden in 3 beurten.
Ik kon jouw getal pas raden in 5 beurten.
Je was duidelijk de sterkere!!!
 
********************
* > Ronde 5 van 5: *
********************
Geef een minimumgetal op of bevestig (default: 0): 
Geef een maximumgetal op of bevestig (default: 25): 
 
De computer kiest een getal tussen 0 en 25 ...
>>> randomkeuze: 8 tussen min: 0 en max: 25 val: 2 #testwaarden_nogweghalen_debuggen 
 
De computer heeft een getal gekozen, jij mag eerst raden!
 
Welk getal wil je kiezen (van 0 tot 25)(q=sluit)? 10
Je hebt te hoog geraden, mijn willekeurig getal is lager! (# 1 )
 
Welk getal wil je kiezen (van 0 tot 25)(q=sluit)? 5
Je hebt te laag geraden, mijn willekeurig getal is hoger! (# 2 )
 
Welk getal wil je kiezen (van 0 tot 25)(q=sluit)? 7
Je hebt te laag geraden, mijn willekeurig getal is hoger! (# 3 )
 
Welk getal wil je kiezen (van 0 tot 25)(q=sluit)? 8
YESS geraden! (in 4 beurten)
 
 
Welk willekeurig getal wil jij laten raden (van 0 tot 25)? 7
>>> randomkeuze: 7 tussen min: 0 en max: 25 val: 2 #testwaarden_nogweghalen_debuggen 
 
Ik raad getal ...  15 ?
Je hebt te hoog geraden, mijn willekeurig getal is lager! (# 1 )
 
Ik raad getal ...  6 ?
Je hebt te laag geraden, mijn willekeurig getal is hoger! (# 2 )
 
Ik raad getal ...  14 ?
Je hebt te hoog geraden, mijn willekeurig getal is lager! (# 3 )
 
Ik raad getal ...  13 ?
Je hebt te hoog geraden, mijn willekeurig getal is lager! (# 4 )
 
Ik raad getal ...  12 ?
Je hebt te hoog geraden, mijn willekeurig getal is lager! (# 5 )
 
Ik raad getal ...  10 ?
Je hebt te hoog geraden, mijn willekeurig getal is lager! (# 6 )
 
Ik raad getal ...  7 ?
YESS geraden! (in 7 beurten)
 
 
Samenvatting
____________
 
Jij hebt van mij gewonnen :-(
Jij kon mijn getal raden in 4 beurten.
Ik kon jouw getal pas raden in 7 beurten.
Je was duidelijk de sterkere!!!
 
 
Scorelijsten
____________
 
Scores gebruiker:
TOP-score: 2 beurten
TOP-score: 3 beurten
TOP-score: 4 beurten
TOP-score: 5 beurten
TOP-score: 8 beurten
 
Scores computer:
TOP-score: 3 beurten
TOP-score: 5 beurten
TOP-score: 6 beurten
TOP-score: 6 beurten
TOP-score: 7 beurten
 
Jij hebt van mij gewonnen :-(
Jij kon mijn getallen raden in slechts 22 beurten.
Ik kon jouw getallen pas raden in 27 beurten.
Proficiat!
 
**********************************************************
* Dank je voor het spelen, dat was leuk! Tot binnenkort! *
**********************************************************

Hieronder Eventueel een andere versie met extra uitbreidingen De bovenstaande versie is nog niet van alle uitbreidingen voorzien.

output_2_shell.txt
...

Oefening op while, variabelen, print(), input(), if elif else, rekenkundige bewerkingen, functies

  • Maak een script met naam Python_oef08_jenaam.py
  • Voorzie bovenaan 2 commentaarlijnen
    • Auteur: JouwNaam
    • Oef: python_oef08_jenaam.py
  • Bekijk volgende bijlage: vlakkefiguren.jpg
  • Op basis van deze bijlage werk je zelf een pythonprogramma uit die:
    • Aan de gebruiker vraagt welke vlakke figuur hij wil berekenen (vierkant, ruit, rechthoek, driehoek, cirkel)
    • Je programma vraagt op basis van de keuze van de gebruiker alle nodige onderdelen om een berekening van én oppervlakte én omtrek te kunnen uitvoeren.
    • Je toont op een overzichtelijke manier feedback/info aan de gebruiker op het scherm.
    • Nadien toon je een witruimte, en begint de uitvoering van het programma opnieuw.
    • Zo kan een gebruiker dus héél snel meerdere berekeningen nakijken/testen/proberen.
  • Basis: in de basisversie werk je dit enkel uit voor volgende basisfiguren: vierkant, ruit, rechthoek, driehoek, cirkel.
  • Uitbreiding1: Je werkt dit uit voor elk van de vlakke figuren die je op de afbeelding kan vinden.
  • Voorzie commentaarlijnen in je code voor meer duidelijkheid
  • Voorzie witregels bij de uitvoering voor meer duidelijkheid

Verbetersleutel

Tips bij gebruik van de verbetersleutel:

  • Maak eerst zelf je oefening volledig af. Probeer écht zelf tot een oplossing te komen: test, probeer, zoek op, lees, controleer,…
  • Raadpleeg indien nodig je naslagwerk en online bronnen, of vraag nadien eventueel feedback aan je leerkracht.
  • Probeer het gebruik van de verbetersleutel uit te stellen tot je helemaal klaar bent.
  • Van gewoon maar oplossingen overnemen leer je immers weinig tot niets bij.

OK, ik volg bovenstaande tips! Toon mij de verbetersleutel.

python_oef08_jenaam.py
  1. # Auteur: Raf Aendekerk
  2. # App: python_oef08_jenaam.py
  3.  
  4. # ... todo

Hieronder de start van de uitvoering:

output_1_shell.txt
...

Hieronder …:

output_2_shell.txt
...
  • oefeningen/oefeningen/python.txt
  • Laatst gewijzigd: 2022/01/28 11:23
  • door Raf Aendekerk