programmeren

in python

Jaar 2 - Module 2 - Les 5: count en index

vandaag gaan we...

 

  • Herhalen hoe je een while lus kan gebruiken met een Boolean

  • Leren hoe je met count kan tellen hoe vaak een letter voorkomt

  • Leren hoe je met een for lus kan kijken of een letter op meerdere plekken voorkomt

Een Boolean kan maar 2 dingen zijn: Ja of Nee.

spel_afgelopen = True
spel_afgelopen = False
  • Ja in Python is True

  • Nee in Python is False

while met boolean (herh)

Een Boolean kan maar 2 dingen zijn: Ja of Nee.

spel_afgelopen = True
spel_afgelopen = False
  • Ja in Python is True

  • Nee in Python is False

  • Let op! Allebei de woorden moeten met een hoofdletter

  • Zonder hoofdletter krijg je een foutmelding

  • Je hoeft geen aanhalingstekens te gebruiken!

while met boolean (herh)

Een Boolean kan maar 2 dingen zijn: Ja of Nee.

 

 

spel_afgelopen = 'nee'

geheim_getal = random.randint(1,10)

while spel_afgelopen == 'nee':
  print('Het spel wordt gespeeld')
  getal = input('Raad een getal')
  if getal == geheim_getal:
    spel_afgelopen = 'ja'
    

print('Het spel is uit!')
  

while met boolean (herh)

Een Boolean kan maar 2 dingen zijn: Ja of Nee.

 

Je kunt het gebruiken net zoals je we eerst ja en nee hadden.

spel_afgelopen = False

geheim_getal = random.randint(1,10)

while spel_afgelopen == False:
  print('Het spel wordt gespeeld')
  getal = input('Raad een getal')
  if getal == geheim_getal:
    spel_afgelopen = True
    

print('Het spel is uit!')
  

while met boolean (herh)

while met boolean (herh)

demo

Bij het raden van 1 letter gaat nog niet alles goed helaas.

if letter in geheim_woord:
    print('Deze letter zit erin!')
    plekje = geheim_woord.index(letter)
    print('En wel op plek', plekje+1)
else:
    print('Deze letter zit er niet in!')

letters tellen (nieuw)

Bij het raden van 1 letter gaat nog niet alles goed helaas.

if letter in geheim_woord:
    print('Deze letter zit erin!')
    plekje = geheim_woord.index(letter)
    print('En wel op plek', plekje+1)
else:
    print('Deze letter zit er niet in!')

letters tellen (nieuw)

We lopen de code even door

Bij het raden van 1 letter gaat nog niet alles goed helaas.

if letter in geheim_woord:
    print('Deze letter zit erin!')
    plekje = geheim_woord.index(letter)
    print('En wel op plek', plekje+1)
else:
    print('Deze letter zit er niet in!')

letters tellen (nieuw)

Als een letter wordt gekozen

Bij het raden van 1 letter gaat nog niet alles goed helaas.

if letter in geheim_woord:
    print('Deze letter zit erin!')
    plekje = geheim_woord.index(letter)
    print('En wel op plek', plekje+1)
else:
    print('Deze letter zit er niet in!')

letters tellen (nieuw)

Kijk dan op welke plek die letter zit.

Bij het raden van 1 letter gaat nog niet alles goed helaas.

if letter in geheim_woord:
    print('Deze letter zit erin!')
    plekje = geheim_woord.index(letter)
    print('En wel op plek', plekje+1)
else:
    print('Deze letter zit er niet in!')

letters tellen (nieuw)

Kijk dan op welke plek die letter zit.

Maar wat als de letter er vaker in zit?

demo

Bij het raden van 1 letter gaat nog niet alles goed helaas.

if letter in geheim_woord:
    print('Deze letter zit erin!')
    plekje = geheim_woord.index(letter)
    print('En wel op plek', plekje+1)
else:
    print('Deze letter zit er niet in!')

letters tellen (nieuw)

Kijk dan op welke plek die letter zit.

Maar index werkt dus niet voor meerdere letters.

 

Dat gaan we nu oplossen. Eerst gaan we de letters tellen.

Met count kun je kijken hoe vaak een letter in een woord zit. count is Engels voor tellen.

if letter in geheim_woord:
    aantal_keer = geheim_woord.count(letter)
    print('Deze letter zit er', aantal_keer, 'keer in!')
    plekje = geheim_woord.index(letter)
    print('En wel op plek', plekje+1)
else:
    print('Deze letter zit er niet in!')

letters tellen (nieuw)

demo

Het tellen werkt nu goed.

if letter in geheim_woord:
    aantal_keer = geheim_woord.count(letter)
    print('Deze letter zit er', aantal_keer, 'keer in!')
    plekje = geheim_woord.index(letter)
    print('En wel op plek', plekje+1)
else:
    print('Deze letter zit er niet in!')

index met for (nieuw)

Het tellen werkt nu goed.

Maar we krijgen alleen de eerste plaats in beeld.

 

Helaas werkt index alleen voor één letter. Voor meerdere letters moeten we een for lus maken.

Kennen jullie die nog?

if letter in geheim_woord:
    aantal_keer = geheim_woord.count(letter)
    print('Deze letter zit er', aantal_keer, 'keer in!')
    plekje = geheim_woord.index(letter)
    print('En wel op plek', plekje+1)
else:
    print('Deze letter zit er niet in!')

index met for (nieuw)

 

 

Let bij een for-lus op deze dingen:

 

  • na range komt het aantal keer dat je wilt herhalen tussen ronde haken
  • na de range() moet weer een :
  • op de volgende regel begin je met twee spaties
  • Let op! Alleen de regels die met spaties beginnen worden herhaald!

 

#start de pen op
pen = turtle.Turtle()

for i in range(4):
  pen.forward(100)
  pen.left(90)

FOR LUSSEN (herh)

Op de plek van de index gebruiken we nu een for lus.

Dit gaat de lus doen:

  • Iedere letter bekijken
  • Is de letter hetzelfde als de letter die geraden is?
  • Dan slaan we het plekje op
  • Anders gaan we door naar de volgende letter
if letter in geheim_woord:
    aantal_keer = geheim_woord.count(letter)
    print('Deze letter zit er', aantal_keer, 'keer in!')
    plekje = geheim_woord.index(letter)
    print('En wel op plek', plekje+1)
else:
    print('Deze letter zit er niet in!')

index met for (nieuw)

Op de plek van de index gebruiken we nu een for lus.

Dit gaat de lus doen:

  • Iedere letter bekijken
  • Is de letter hetzelfde als de letter die geraden is?
  • Dan slaan we het plekje op
  • Anders gaan we door naar de volgende letter
if letter in geheim_woord:
    aantal_keer = geheim_woord.count(letter)
    print('Deze letter zit er', aantal_keer, 'keer in!')
    for plekje in range(len(geheim_woord)):
      if geheim_woord[plekje] == letter:
        print('En wel op plek', plekje+1)
else:
    print('Deze letter zit er niet in!')

index met for (nieuw)

demo

Bij het echte galgjespel heb je op papier ook een lijstje met al geraden letters, zo: p...a.aa.

 

Dat kan ook in Python, in deze for lus.

if letter in geheim_woord:
    aantal_keer = geheim_woord.count(letter)
    print('Deze letter zit er', aantal_keer, 'keer in!')
    for plekje in range(len(geheim_woord)):
      if geheim_woord[plekje] == letter:
        print('En wel op plek', plekje+1)
else:
    print('Deze letter zit er niet in!')

lijst met letters (nieuw)

Bij het echte galgjespel heb je op papier ook een lijstje met al geraden letters, zo: p...a.aa.

 

Dat kan ook in Python, in deze for lus.

Helemaal bovenin de code maak je een lijst met punten.

geraden_letters = list('.'*len(geheim_woord))
#.....

if letter in geheim_woord:
    aantal_keer = geheim_woord.count(letter)
    print('Deze letter zit er', aantal_keer, 'keer in!')
    for plekje in range(len(geheim_woord)):
      if geheim_woord[plekje] == letter:
        print('En wel op plek', plekje+1)
else:
    print('Deze letter zit er niet in!')

lijst met letters (nieuw)

Bij het echte galgjespel heb je op papier ook een lijstje met al geraden letters, zo: p...a.aa.

 

Dat kan ook in Python, in deze for lus.

Helemaal bovenin de code maak je een lijst met punten.

In de for lus zet je de letters in de lijst, die print je na de lus

geraden_letters = list('.'*len(geheim_woord))
#.....

if letter in geheim_woord:
    aantal_keer = geheim_woord.count(letter)
    print('Deze letter zit er', aantal_keer, 'keer in!')
    for plekje in range(len(geheim_woord)):
      if geheim_woord[plekje] == letter:
        geraden_letters[plekje] = letter
    print(geraden_letters) 
else:
    print('Deze letter zit er niet in!')

lijst met letters (nieuw)

demo

galgje verbeteren

Volg deze stappen (die staan straks ook in repl.it)

 

  • Gebruik count om de letters te tellen
  • Gebruik een forlus om te vertellen waar de letters zitten
  • Gebruik een lijst om letters bij te houden die geraden zijn

opdrachten in repl.it

  • In plaats van papieren werkvellen maken we de opdrachten nu online.

opdrachten in repl.it

  • In plaats van papieren werkvellen maken we de opdrachten nu online.
  • Ga naar de Classroom: https://repl.it/classroom/invite/ojr4pXL
     
  • Maak opdrachten 1, 2, 3
  • 4 is extra
  • Je kunt ook nog aan mastermind werken (extra vorige week)
  • Inleveren via repl.it (dus niet via Magister!)
  • Samenwerken:
    • Overleggen mag
    • Overtypen/multiplayer mag NIET
  • Deadline dinsdag om 16:59

opdrachten in repl.it

de opdrachten...

Made with Slides.com