Python Udviklingskursus
Kapitel
>
Niveau
Betingelser
Break og Continue-sætninger
Mål
Fjern noget ukrudt i passagen mellem bygningerne ved hjælp af løkkebetingelser.
Passagen mellem bygningerne har ukrudt, så saml alt ukrudtet og dump det ved hjælp af løkker. Der er måder, hvorpå du kan automatisere denne proces ved hjælp af løkkebetingelser.
Opret en variabel ved navn bag og brug den til at opbevare ukrudtet, mens du samler det op. Brug en while-løkke med betingelser til at automatisere processen, der er i alt ti (10) ukrudt.
while True: player.move_forward() bag += 1 if bag == 10: break
Ved at sætte while-løkken til True vil løkken ikke afslutte, medmindre operatoren break anvendes til at afslutte løkken. Hver løkkeiteration tilføjer et ukrudt til posen og tjekker, hvor mange ukrudt der er samlet op, for at afgøre om løkken skal brydes. if-sætningen bruges til at tjekke, om løkken skal brydes eller ej; den tjekker, hvor mange ukrudt der er i bag, og bryder, hvis antallet er nået.
Efter at have navigeret passagen, brug en for-løkke til at dumpe ukrudtet i containere ved hjælp af place()-funktionen ved X-mærkerne. Antallet af skridt mellem hver container er dog ujævnt, da der er et hul imellem. Ved at bruge operatoren continue springer du en løkkeiteration over ved at teste en betingelse via en if-sætning.
for x in range(3): player.move_forward() if x == 1: continue player.turn_right() player.place(bag/2) player.turn_left()
I koden ovenfor tjekker if-sætningen, om x, som er antallet af løkkeiterationer, er lig med 1. Denne for-løkke kører tre (3) gange, som defineret af range(), da x starter ved 0, og kører 0, 1, 2, inden løkken afsluttes. Da du tjekker, om løkkecyklussen er ved 1, vil koden under continue ikke køre og i stedet blive sprunget over, hvis betingelsen er opfyldt. Med dette kan vi undgå mellemrummet mellem de to containere ved at springe midterste cyklus over.
Da der er to (2) kasser, brug place()-funktionen til at dumpe ukrudtet, der er lagret i variablen bag, ved at dividere den samlede mængde, som dette: player.place(bag/2).
Når du har samlet og placeret ukrudtet på det rette sted, skal du nå udgangen markeret med en stjerne for at fuldføre niveauet.