While is_winter(): cold = True

Nu je de if-then-else onder de knie hebt, gaan we de if-then-else mixen met een for-loop: de while-loop. Het gaat zo:

while True:
    print("No stopping me")
print("Never finishing...")


No stopping me
No stopping me
No stopping me
No stopping me
No stopping me
No stopping me
<....>
No stopping me

Run je deze code per ongeluk dan moet je m stoppen met Menu -> Shell -> Restart Shell of CTRL-F6.

De conditie op de plaats van True werkt op dezelfde manier als bij if-then-else. Je moet alleen wel een conditie gebruiken die op een gegeven moment onwaar wordt, anders heb je een infinite loop. Dat zuigt.

Klassiek is de loop over een variabele:

x = 0
while x < 10:
    print("x is " + str(x))
    x = x + 1
print("Klaro")

X is 0
X is 1
X is 2
X is 3
X is 4
X is 5
X is 6
X is 7
X is 8
X is 9
Klaro

We lopen er even regel voor regel doorheen:

  • x = 0. Wat is je begin-situatie? Als je een variabele test maar hij nog geen waarde heeft, tript je programma.
  • while x < 10: . Dit is de test. x begint op 0 ,dus true. Dan gaat ie de loop in.
  • print(“x is ” + str(x)). Even printen. Van x printen we de string-waarde, want optellen gaat nu niet.
  • x = x +1. Ophogen. Als je dit vergeet ben je de bok. Shortcut: x += 1

 

Oefeningen met While loops.

Opdracht 1. Print de maanden

Haal de lijst met maanden nog even op van de opdrachten met if-then-else.

  • maak een variabele nummer = 0
  • maak een while loop, die maximaal alle 12 (…)  maanden afloopt.
  • en print de naam van elke maand. Check december!

Opdracht 2. Leuke maand?

Breidt je code een stukje uit met:

  • print niet alleen de naam, maar vraag of deze maand leuk is (j/n).
  • als de maand niet leuk is, print dan een extra tekst.

Opdracht 3. De where – clausule uitbreiden

  • maak voor de loop begint de variabele leuk en geef de waarde true.
  • als de maand niet leuk is, zet leuk op false
  • test met het maand-nummer en leuk:
while leuk and nummer < 12:

Logische Operatoren : and or en not

Bij opdracht 3 zag je dat je logica kunt combineren met het and-keyword. Ze werken zo:

  • a and b : True wanneer a en b true zijn.
  • a or b: True wanneer a True is, of B true is, of allebei.
  • not a: true wanneer a false is en false wanneer a true is.

De enige verrassing zit m bij de or. Vraag maar eens of je suiker of melk in de koffie wilt !

Opdracht 4. Koffie?

  • vraag aan de gebruiker of deze koffie wil
  • zo ja, vraag of er ook suiker in moet, en als tweede vraag
  • of er ook melk in moet
  • stop de resultaten elk in een eigen variabele
  • als het met melk En suiker is, dan print je “met alles”
  • zet de hele code binnen een while-loop en laat deze loop stoppen als je 3x met alles hebt gehad.