Table of Contents[Ferstopje][Toanje]
Yn 'e lêste tutorial hawwe wy leard oer while-loops en hoe't jo in blok koade meardere kearen kinne útfiere.
Yn Python hawwe wy oare soarten loops lykas "foar loop" en "nêste loop". Litte wy sjen hoe't se wurde brûkt.
Foar Loops
Wy brûke "foar loop" om items fan in kolleksje te iterearjen, lykas in tekenrige. Om't de tekenrige in sekwinsje fan karakters is, liket it op in samling. Dêrom kinne wy in for-loop brûke om elk karakter yn in tekenrige te iterearjen en dan wat mei te dwaan.
Hjir is in foarbyld.
Wy typen "foar" folge troch in fariabele en dan in tekenrige.
for item in 'Python':
Hjir betsjut it "item" de karakters fan it wurd Python. Yn 'e earste iteraasje fan' e loop betsjut "item" 'P', de twadde iteraasje betsjut 'y' ensafuorthinne. Litte wy dit útfiere
Jo kinne sjen dat elk karakter yn dizze tekenrige wurdt printe op in nije rigel.
Litte wy nei in oar foarbyld sjen. Yn Python kinne wy listen definiearje mei fjouwerkante heakjes. Dat lit my in list definiearje mei fjouwerkante heakjes.
for item in ['Shahbaz', 'Aayush', 'Jay']:
print(item)
No sil it de trije nammen op aparte rigels listje.
Wy kinne ek in list mei nûmers brûke yn dizze ynstelling. Ynstee fan alle nûmers fan 0 oant 9 te typen, sil ik de funksje "Range" brûke om dingen te ferienfâldigjen. Litte wy sjen hoe't it dien is.
for item in range(10):
print(item)
Wy kinne it ek programmearje om net mei 0 te begjinnen.
for item in range(5, 10):
It sil de nûmers 5 oant 9 printsje op 'e terminal.
De funksje "Range" kin ek de stappen nimme as ynfier. Dus as wy it sa skriuwe:
for item in range(5, 10, 2):
It sil 5, 7 en 9 printsje, wat betsjut dat it nei elke iteraasje twa stappen foarút giet.
Oefenje
No hjir is in oefening foar jo. Ik wol dat jo in programma skriuwe om de totale kosten fan alle items yn in winkelkarre te berekkenjen. Litte wy sizze dat wy in list hawwe mei prizen lykas 10, 20 en 30, ik wol dat jo in for-loop brûke om de totale kosten fan alle items yn ús tinkbyldige winkelkarre te berekkenjen.
Set jo harsens oan it wurk en sjoch as jo it kinne dwaan. Gjin bedrog.
Oplossing
Jo kinne begjinne mei in list fan de prizen lykas dit.
prices = [10, 20, 30]
Foegje no in fariabele ta foar in totale priis dy't sil begjinne fan 0 foar de earste iteraasje.
total = 0
Hjir is ús foar-loop.
for price in prices:
total = total + price
// It kin wurde ferienfâldige as total += price
print(f"Total: {total}")
Nested Loops
Yn Python betsjut it brûken fan in nestele lus yn prinsipe it tafoegjen fan ien lus yn in oare lus, en mei dizze technyk kinne wy wat geweldige dingen dwaan. Wy kinne bygelyks maklik in list mei koördinaten generearje.
In koördinaat, lykas jo witte, is in kombinaasje fan 'x' en 'y' wearden. Litte we sizze 0 en 0. Litte wy no sizze dat jo in list mei koördinaten lykas dizze generearje wolle. Wy hawwe 0 en 0, dan hawwe wy 0 en 1, dan 0 en 2.
Folgjende sille wy 'x' feroarje. Wy sille 1 brûke foar 'x', en nochris sille wy dizze 3 wearden brûke foar de 'y' koördinaten.
Wy kinne maklik generearje dizze koördinaten mei help fan nestede loops.
Lit my dy sjen litte.
for x in range(4):
for y in range(3):
print(f'({x}, {y}')
Litte wy de útfier kontrolearje:
Dat lit my krekt útlizze hoe't dit programma wurdt útfierd. Yn de earste iteraasje fan ús bûtenste lus is 'x' 0. No steane wy op rigel 2, hjir hawwe wy in nije lus dy't wy in binnenste lus neame. Yn dizze binnenste lus, yn 'e earste iteraasje, sil 'y' 0 wêze, dus 0 en 0 wurde printe op 'e terminal.
No giet de kontrôle werom nei line 2 of ús binnenste lus. Yn dizze twadde iteraasje sil 'y' wurde ynsteld op 1, mar wy binne noch yn 'e earste iteraasje fan ús bûtenste lus. Dus 'x' is noch altyd 0, mar no wurdt 'y' ferhege nei 1.
Dêrom sjogge wy 0 en 1 op 'e terminal. Dit sil trochgean oant ús binnenste lus wurdt útfierd en dan sil de tolk wer nei de bûtenste lus gean en dit proses giet troch oant de bûtenste lus foltôge is.
Útdaging
Hjir is in oefening foar jo, mar dizze is in bytsje mear útdaagjend dan de oefeningen dy't jo oant no ta dien hawwe.
Skriuw in koade mei nêste loops om dizze 'F' foarm te tekenjen:
Oplossing
numbers = [5, 2, 5, 2, 2]
for x_count in numbers:
output = ''
// Wy sille de útfierfariabele weromsette nei in lege tekenrige.
for count in range(x_count):
output += 'x'
print(output)
D'r is in folle ienfâldiger manier om dit út te fieren sûnder nestede loops te brûken. Ik lit it foar jo om út te finen.
Gearfetsje
Fielsto ek dat de waarmte by elke lêzing omheech giet?
Dat fiel ik perfoarst. Ik haw it folle makliker makke foar jo om te begripen.
Litte wy dingen mei ús folgjende lêzing bringe.
Leave a Reply