Indholdsfortegnelse[Skjule][At vise]
I den sidste tutorial lærte vi om while-løkker, og hvordan man udfører en kodeblok flere gange.
I Python har vi andre slags loops som "for loop" og "nested loop". Lad os se, hvordan de bruges.
Til sløjfer
Vi bruger "for loop" til at iterere over elementer i en samling, såsom en streng. Da strengen er en sekvens af tegn, ligner den en samling. Derfor kan vi bruge en for-løkke til at iterere over hvert tegn i en streng og derefter gøre noget med det.
Her er et eksempel.
Vi skriver "for" efterfulgt af en variabel og derefter en streng.
for item in 'Python':
Her betyder "emnet" tegnene i ordet Python. I den første iteration af løkken betyder "element" 'P', den anden iteration betyder 'y' og så videre. Lad os udføre dette
Du kan se, at hvert tegn i denne streng er udskrevet på en ny linje.
Lad os se på et andet eksempel. I Python kan vi definere lister ved hjælp af firkantede parenteser. Så lad mig definere en liste ved hjælp af firkantede parenteser.
for item in ['Shahbaz', 'Aayush', 'Jay']:
print(item)
Nu vil den liste de tre navne på separate linjer.
Vi kan også bruge en liste over tal i denne indstilling. I stedet for at skrive alle tallene fra 0 til 9, vil jeg bruge funktionen "Range" til at forenkle tingene. Lad os se, hvordan det gøres.
for item in range(10):
print(item)
Vi kan også programmere det til at starte ikke med 0.
for item in range(5, 10):
Den vil udskrive numrene 5 til 9 på terminalen.
Funktionen "Range" kan også tage trinene som input. Så hvis vi skriver det sådan her:
for item in range(5, 10, 2):
Den udskriver 5, 7 og 9, hvilket betyder, at den går to skridt fremad efter hver iteration.
Dyrke motion
Nu er her en øvelse til dig. Jeg vil have dig til at skrive et program til at beregne den samlede pris for alle varerne i en indkøbskurv. Så lad os sige, at vi har en liste med priser som 10, 20 og 30, jeg vil have dig til at bruge en for-løkke til at beregne de samlede omkostninger for alle varerne i vores imaginære indkøbskurv.
Sæt din hjerne i gang og se, om du kan gøre det. Ingen snyd.
Løsning
Du kan starte med at angive priserne sådan her.
prices = [10, 20, 30]
Tilføj nu en variabel for en samlet pris, som starter fra 0 for den første iteration.
total = 0
Her er vores for loop.
for price in prices:
total = total + price
// Det kan forenkles som total += price
print(f"Total: {total}")
Indlejrede sløjfer
I Python betyder brug af en indlejret løkke dybest set at tilføje en løkke inde i en anden løkke, og med denne teknik kan vi gøre nogle fantastiske ting. For eksempel kan vi nemt generere en liste over koordinater.
En koordinat er som bekendt en kombination af 'x' og 'y' værdier. Lad os sige 0 og 0. Lad os nu sige, at du vil generere en liste over koordinater som denne. Vi har 0 og 0, så har vi 0 og 1, så 0 og 2.
Dernæst skal vi ændre 'x'. Vi vil bruge 1 til 'x', og igen vil vi bruge disse 3 værdier til 'y'-koordinaterne.
Vi kan nemt generere disse koordinater ved hjælp af indlejrede løkker.
Lad mig vise dig.
for x in range(4):
for y in range(3):
print(f'({x}, {y}')
Lad os tjekke outputtet:
Så lad mig forklare præcis, hvordan dette program bliver udført. I den første iteration af vores ydre løkke er 'x' 0. Nu er vi på linje 2, her har vi en ny løkke, som vi kalder en indre løkke. I denne indre løkke, i den første iteration, vil 'y' være 0, så 0 og 0 udskrives på terminalen.
Nu går styringen tilbage til linje 2 eller vores indre sløjfe. I denne anden iteration vil 'y' blive sat til 1, men vi er stadig i den første iteration af vores ydre sløjfe. Så 'x' er stadig 0, men nu øges 'y' til 1.
Derfor ser vi 0 og 1 på terminalen. Dette vil fortsætte, indtil vores indre løkke er udført, og derefter vil tolken gå igen til den ydre løkke, og denne proces fortsætter, indtil den ydre løkke er afsluttet.
Udfordring
Her er en øvelse til dig, men denne er en smule mere udfordrende end de øvelser, du har lavet indtil videre.
Brug indlejrede løkker, skriv en kode for at tegne denne 'F'-form:
Løsning
numbers = [5, 2, 5, 2, 2]
for x_count in numbers:
output = ''
//Vi skal nulstille outputvariablen til en tom streng.
for count in range(x_count):
output += 'x'
print(output)
Der er en meget enklere måde at udføre dette på uden at bruge indlejrede løkker. Jeg overlader det til dig at finde ud af.
Wrap Up
Føler I også, at varmen stiger med hver forelæsning?
Sådan har jeg det bestemt. Jeg har gjort det meget nemmere for dig at forstå.
Lad os tage tingene op med vores næste foredrag.
Giv en kommentar