programmeren

in python

Jaar 2 - Module 2 - Les 4: While lus met boolean

vandaag gaan we...

 

  • Herhalen hoe je een while lus gebruikt

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

  • Leren hoe je een while lus kan gebruiken om spellen te maken, zoals Galgje

Het spel Galgje kan om 2 redenen afgelopen zijn:

 

  1. Het woord is geraden
  2. De 10 beurten zijn op

 

We gaan nu een while lus maken die net zo lang doorgaat tot het spel is afgelopen. Als 1 van deze twee dingen gebeurt moet het spel stoppen.

Dat slaan we op in een variabele: spel_afgelopen

while met boolean (herh)

while met boolean (herh)

geheim_woord = 'pindakaas'
spel_afgelopen = 'nee'

while spel_afgelopen == 'nee':
  print('woord of letter raden?')
  keuze = input()
  if keuze == 'letter':
    print('Okee, probeer een letter!')
    letter = input()
    if letter in geheim_woord:
      print('Deze letter zit erin!')
    else:
      print('Deze letter zit er niet in!')
  else:
    print('Okee, probeer een woord!')
    # vanaf hier wordt het anders!
    woord = input()
    if woord == geheim_woord:
      spel_afgelopen = 'ja'
    else:
      print('Dat woord is fout, helaas!')

Dat kunnen we zo maken:

 

 

geheim_woord = 'pindakaas'
spel_afgelopen = 'nee'

while spel_afgelopen == 'nee':
  print('woord of letter raden?')
  keuze = input()
  if keuze == 'letter':
    print('Okee, probeer een letter!')
    letter = input()
    if letter in geheim_woord:
      print('Deze letter zit erin!')
    else:
      print('Deze letter zit er niet in!')
  else:
    print('Okee, probeer een woord!')
    # vanaf hier wordt het anders!
    woord = input()
    if woord == geheim_woord:
      spel_afgelopen = 'ja'
    else:
      print('Dat woord is fout, helaas!')

Dat kunnen we zo maken:

 

 

while met boolean (herh)

geheim_woord = 'pindakaas'
spel_afgelopen = 'nee'

while spel_afgelopen == 'nee':
  print('woord of letter raden?')
  keuze = input()
  if keuze == 'letter':
    print('Okee, probeer een letter!')
    letter = input()
    if letter in geheim_woord:
      print('Deze letter zit erin!')
    else:
      print('Deze letter zit er niet in!')
  else:
    print('Okee, probeer een woord!')
    # vanaf hier wordt het anders!
    woord = input()
    if woord == geheim_woord:
      spel_afgelopen = 'ja'
    else:
      print('Dat woord is fout, helaas!')

Deze variabele geeft aan of het spel afgelopen is

while met boolean (herh)

geheim_woord = 'pindakaas'
spel_afgelopen = 'nee'

while spel_afgelopen == 'nee':
  print('woord of letter raden?')
  keuze = input()
  if keuze == 'letter':
    print('Okee, probeer een letter!')
    letter = input()
    if letter in geheim_woord:
      print('Deze letter zit erin!')
    else:
      print('Deze letter zit er niet in!')
  else:
    print('Okee, probeer een woord!')
    # vanaf hier wordt het anders!
    woord = input()
    if woord == geheim_woord:
      spel_afgelopen = 'ja'
    else:
      print('Dat woord is fout, helaas!')

Zolang die variabele nee is

while met boolean (herh)

geheim_woord = 'pindakaas'
spel_afgelopen = 'nee'

while spel_afgelopen == 'nee':
  print('woord of letter raden?')
  keuze = input()
  if keuze == 'letter':
    print('Okee, probeer een letter!')
    letter = input()
    if letter in geheim_woord:
      print('Deze letter zit erin!')
    else:
      print('Deze letter zit er niet in!')
  else:
    print('Okee, probeer een woord!')
    # vanaf hier wordt het anders!
    woord = input()
    if woord == geheim_woord:
      spel_afgelopen = 'ja'
    else:
      print('Dat woord is fout, helaas!')

Zolang die variabele nee is

blijft deze hele lus aan

while met boolean (herh)

geheim_woord = 'pindakaas'
spel_afgelopen = 'nee'

while spel_afgelopen == 'nee':
  print('woord of letter raden?')
  keuze = input()
  if keuze == 'letter':
    print('Okee, probeer een letter!')
    letter = input()
    if letter in geheim_woord:
      print('Deze letter zit erin!')
    else:
      print('Deze letter zit er niet in!')
  else:
    print('Okee, probeer een woord!')
    # vanaf hier wordt het anders!
    woord = input()
    if woord == geheim_woord:
      spel_afgelopen = 'ja'
    else:
      print('Dat woord is fout, helaas!')

Dit stuk blijft hetzelfde als we al hadden

while met boolean (herh)

geheim_woord = 'pindakaas'
spel_afgelopen = 'nee'

while spel_afgelopen == 'nee':
  print('woord of letter raden?')
  keuze = input()
  if keuze == 'letter':
    print('Okee, probeer een letter!')
    letter = input()
    if letter in geheim_woord:
      print('Deze letter zit erin!')
    else:
      print('Deze letter zit er niet in!')
  else:
    print('Okee, probeer een woord!')
    # vanaf hier wordt het anders!
    woord = input()
    if woord == geheim_woord:
      spel_afgelopen = 'ja'
    else:
      print('Dat woord is fout, helaas!')

Dit stuk wordt anders

while met boolean (herh)

geheim_woord = 'pindakaas'
spel_afgelopen = 'nee'

while spel_afgelopen == 'nee':
  print('woord of letter raden?')
  keuze = input()
  if keuze == 'letter':
    print('Okee, probeer een letter!')
    letter = input()
    if letter in geheim_woord:
      print('Deze letter zit erin!')
    else:
      print('Deze letter zit er niet in!')
  else:
    print('Okee, probeer een woord!')
    # vanaf hier wordt het anders!
    woord = input()
    if woord == geheim_woord:
      spel_afgelopen = 'ja'
    else:
      print('Dat woord is fout, helaas!')

Als het woord geraden is, 

while met boolean (herh)

geheim_woord = 'pindakaas'
spel_afgelopen = 'nee'

while spel_afgelopen == 'nee':
  print('woord of letter raden?')
  keuze = input()
  if keuze == 'letter':
    print('Okee, probeer een letter!')
    letter = input()
    if letter in geheim_woord:
      print('Deze letter zit erin!')
    else:
      print('Deze letter zit er niet in!')
  else:
    print('Okee, probeer een woord!')
    # vanaf hier wordt het anders!
    woord = input()
    if woord == geheim_woord:
      spel_afgelopen = 'ja'
    else:
      print('Dat woord is fout, helaas!')

Als het woord geraden is, dan stellen we de variabele spel_afgelopen in op ja 

while met boolean (herh)

geheim_woord = 'pindakaas'
spel_afgelopen = 'nee'

while spel_afgelopen == 'nee':
  print('woord of letter raden?')
  keuze = input()
  if keuze == 'letter':
    print('Okee, probeer een letter!')
    letter = input()
    if letter in geheim_woord:
      print('Deze letter zit erin!')
    else:
      print('Deze letter zit er niet in!')
  else:
    print('Okee, probeer een woord!')
    # vanaf hier wordt het anders!
    woord = input()
    if woord == geheim_woord:
      spel_afgelopen = 'ja'
    else:
      print('Dat woord is fout, helaas!')

Python loopt dan weer naar boven

while met boolean (herh)

geheim_woord = 'pindakaas'
spel_afgelopen = 'nee'

while spel_afgelopen == 'nee':
  print('woord of letter raden?')
  keuze = input()
  if keuze == 'letter':
    print('Okee, probeer een letter!')
    letter = input()
    if letter in geheim_woord:
      print('Deze letter zit erin!')
    else:
      print('Deze letter zit er niet in!')
  else:
    print('Okee, probeer een woord!')
    # vanaf hier wordt het anders!
    woord = input()
    if woord == geheim_woord:
      spel_afgelopen = 'ja'
    else:
      print('Dat woord is fout, helaas!')

Python loopt dan weer naar boven, en kijkt nu of spel_afgelopen 'nee'. 

while met boolean (herh)

geheim_woord = 'pindakaas'
spel_afgelopen = 'nee'

while spel_afgelopen == 'nee':
  print('woord of letter raden?')
  keuze = input()
  if keuze == 'letter':
    print('Okee, probeer een letter!')
    letter = input()
    if letter in geheim_woord:
      print('Deze letter zit erin!')
    else:
      print('Deze letter zit er niet in!')
  else:
    print('Okee, probeer een woord!')
    # vanaf hier wordt het anders!
    woord = input()
    if woord == geheim_woord:
      spel_afgelopen = 'ja'
    else:
      print('Dat woord is fout, helaas!')

Python loopt dan weer naar boven, en kijkt nu of spel_afgelopen 'nee'. 

 

Maar het is 'ja', want dat hebben we net ingesteld.

De lus stopt.

while met boolean (herh)

geheim_woord = 'pindakaas'
spel_afgelopen = 'nee'

while spel_afgelopen == 'nee':
  print('woord of letter raden?')
  keuze = input()
  if keuze == 'letter':
    print('Okee, probeer een letter!')
    letter = input()
    if letter in geheim_woord:
      print('Deze letter zit erin!')
    else:
      print('Deze letter zit er niet in!')
  else:
    print('Okee, probeer een woord!')
    # vanaf hier wordt het anders!
    woord = input()
    if woord == geheim_woord:
      spel_afgelopen = 'ja'
    else:
      print('Dat woord is fout, helaas!')

Maar... een woord gebruiken voor ja/nee is niet zo handig.

while met boolean (herh)

geheim_woord = 'pindakaas'
spel_afgelopen = 'nee'

while spel_afgelopen == 'nee':
  print('woord of letter raden?')
  keuze = input()
  if keuze == 'letter':
    print('Okee, probeer een letter!')
    letter = input()
    if letter in geheim_woord:
      print('Deze letter zit erin!')
    else:
      print('Deze letter zit er niet in!')
  else:
    print('Okee, probeer een woord!')
    # vanaf hier wordt het anders!
    woord = input()
    if woord == geheim_woord:
      spel_afgelopen = 'ja'
    else:
      print('Dat woord is fout, helaas!')

Maar... een woord gebruiken voor ja/nee is niet zo handig. 

 

Wat wat betekent het als spel_afgelopen 'paars' is?

while met boolean (herh)

geheim_woord = 'pindakaas'
spel_afgelopen = 'nee'

while spel_afgelopen == 'nee':
  print('woord of letter raden?')
  keuze = input()
  if keuze == 'letter':
    print('Okee, probeer een letter!')
    letter = input()
    if letter in geheim_woord:
      print('Deze letter zit erin!')
    else:
      print('Deze letter zit er niet in!')
  else:
    print('Okee, probeer een woord!')
    # vanaf hier wordt het anders!
    woord = input()
    if woord == geheim_woord:
      spel_afgelopen = 'ja'
    else:
      print('Dat woord is fout, helaas!')

Maar... een woord gebruiken voor ja/nee is niet zo handig. 

 

Wat wat betekent het als spel_afgelopen 'paars' is?

 

 

Eigenlijk wil je een variabele die alleen

JA of NEE kan zijn

while met boolean (herh)

geheim_woord = 'pindakaas'
spel_afgelopen = 'nee'

while spel_afgelopen == 'nee':
  print('woord of letter raden?')
  keuze = input()
  if keuze == 'letter':
    print('Okee, probeer een letter!')
    letter = input()
    if letter in geheim_woord:
      print('Deze letter zit erin!')
    else:
      print('Deze letter zit er niet in!')
  else:
    print('Okee, probeer een woord!')
    # vanaf hier wordt het anders!
    woord = input()
    if woord == geheim_woord:
      spel_afgelopen = 'ja'
    else:
      print('Dat woord is fout, helaas!')

Zo'n variabele heet een Boolean

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

while met boolean (NIeuw)

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 (NIeuw)

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 (NIeuw)

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 (NIeuw)

demo

galgje verbeteren

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

 

  • Gebruik een while lus om te kijken of het spel afgelopen is
  • Maar gebruik nu True en False ipv ja en nee
  • Gebruik ook True en False bij het tellen van de beurten

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 en 4
  • 5 en 6 zijn extra
  • 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