Python Ontwikkelingscursus
Hoofdstuk
>
Niveau
Voorwaarden
Break- en Continue-instructies
Doelstelling
Ruim wat onkruid in de doorgang tussen gebouwen op met behulp van loop-condities.
In de doorgang tussen de gebouwen groeit onkruid, verzamel al het onkruid en gooi het weg met behulp van loops. Er zijn manieren waarop je dit proces kunt automatiseren met behulp van loop-condities.
Maak een variabele genaamd bag en gebruik deze om het onkruid op te slaan terwijl je het opruimt. Gebruik een while-loop met condities om het proces te automatiseren, er zijn in totaal tien (10) onkruiden.
while True: player.move_forward() bag += 1 if bag == 10: break
Door de while-loop op True te zetten, zal de loop niet eindigen tenzij de operator break wordt gebruikt om de loop te sluiten. Elke loopcyclus voegt een onkruid toe aan de bag en controleert hoeveel onkruiden zijn opgepakt om de loop te beëindigen. De if-verklaring wordt gebruikt om te controleren of de loop moet break of niet; het controleert hoeveel onkruiden er in de bag zitten en breekt als het aantal is bereikt.
Na het passeren van de doorgang, gebruik een for-loop om het onkruid in containers te deponeren door de place()-functie te gebruiken bij de X-markeringen. Het aantal stappen tussen elke container is echter ongelijk, omdat er een tussenruimte is. Door de operator continue te gebruiken, sla je een loopcyclus over door een voorwaarde te testen via een if-verklaring.
for x in range(3): player.move_forward() if x == 1: continue player.turn_right() player.place(bag/2) player.turn_left()
In de bovenstaande code controleert de if-verklaring of x, dat het aantal loopcycli is, gelijk is aan 1. Deze for-loop wordt drie (3) keer uitgevoerd zoals gedefinieerd door range(), aangezien x begint bij 0, wordt deze uitgevoerd bij 0, 1, 2 voordat de loop wordt beëindigd. Omdat je controleert of de loopcyclus op 1 staat, wordt de code onder continue niet uitgevoerd en overgeslagen als aan die voorwaarde is voldaan. Hiermee kunnen we de tussenruimte tussen de twee containers vermijden door de middelste cyclus over te slaan.
Aangezien er twee (2) kratten zijn, gebruik je de place()-functie om het onkruid dat in de variabele bag is opgeslagen te deponeren door het totaal te delen, zoals dit: player.place(bag/2).
Zodra je het onkruid hebt verzameld en op de juiste plek hebt geplaatst, bereik je de uitgang gemarkeerd door een ster om het level te voltooien.