In hoofdstuk 7 legde ik de loop-en-een-half uit. De uiteindelijke code voor het
voorbeeld dat ik gebruikte had nog steeds iets lelijks, namelijk dat als
x
kleiner dan 0 of groter dan 1000 was, dat de code nog steeds vroeg
om y
terwijl het al bekend was dat het een andere waarde voor x
zou
moeten krijgen. Ik gaf ook aan dat he dat het gemakkelijkste kon
oplossen via functies. Creƫer een functie die je aan onderstaande code
toevoegt en in onderstaande code aanroept, zodat het probleem wordt
opgelost. Verwijder ook de exit()
door introductie van een main()
functie. Hint: Maak een variant van getInteger()
die garandeert dat de
integer tussen 0 en 1000 ligt.
from pcinput import getInteger
from sys import exit
while True:
x = getInteger( "Geef nummer 1: " )
if x == 0:
break
y = getInteger( "Geef nummer 2: " )
if y == 0:
break
if (x < 0 or x > 1000) or (y < 0 or y > 1000):
print( "De nummers moeten tussen 0 en 1000 liggen" )
continue
if x%y == 0 or y%x == 0:
print( "Fout: de nummers mogen geen delers zijn" )
exit()
print( "Vermenigvuldiging van", x, "met", y, "geeft", x * y )
print( "Tot ziens!" )