Pregled sadržaja[Sakriti][Pokazati]
U prošlom vodiču naučili smo o petljama while i kako izvršiti blok koda više puta.
U Pythonu imamo druge vrste petlji kao što su "for petlja" i "ugniježđena petlja". Pogledajmo kako se koriste.
Za petlje
Koristimo "for petlju" za iteraciju preko stavki zbirke, kao što je niz. Budući da je niz niz znakova, izgleda kao zbirka. Stoga možemo upotrijebiti for petlju za iteraciju preko svakog znaka u nizu i zatim učiniti nešto s njim.
Evo primjera.
Upisujemo "za", nakon čega slijedi varijabla, a zatim niz.
for item in 'Python':
Ovdje "stavka" označava znakove riječi Python. U prvoj iteraciji petlje “item” znači 'P', druga iteracija znači 'y' i tako dalje. Izvršimo ovo
Možete vidjeti da je svaki znak u ovom nizu ispisan u novom retku.
Pogledajmo još jedan primjer. U Pythonu možemo definirati popise pomoću uglatih zagrada. Dopustite mi da definiram popis pomoću uglatih zagrada.
for item in ['Shahbaz', 'Aayush', 'Jay']:
print(item)
Sada će navesti tri imena u zasebnim redovima.
Također možemo koristiti popis brojeva u ovoj postavci. Umjesto da upisujem sve brojeve od 0 do 9, koristit ću funkciju "Raspon" da pojednostavim stvari. Da vidimo kako se to radi.
for item in range(10):
print(item)
Također ga možemo programirati da ne počinje s 0.
for item in range(5, 10):
Ispisat će brojeve od 5 do 9 na terminalu.
Funkcija "Domet" također može uzeti korake kao unos. Dakle, ako to napišemo ovako:
for item in range(5, 10, 2):
Ispisat će 5, 7 i 9 što znači da ide dva koraka naprijed nakon svake iteracije.
Vježba
Evo vježbe za vas. Želim da napišete program za izračunavanje ukupne cijene svih stavki u košarici. Dakle, recimo da imamo popis cijena poput 10, 20 i 30, želim da upotrijebite for petlju za izračun ukupne cijene svih artikala u našoj zamišljenoj košarici.
Stavite svoj mozak na posao i vidite možete li to učiniti. Nema varanja.
Riješenje
Možete početi tako da navedete cijene ovako.
prices = [10, 20, 30]
Sada dodajte varijablu za ukupnu cijenu koja će početi od 0 za prvu iteraciju.
total = 0
Evo naše for petlje.
for price in prices:
total = total + price
// Može se pojednostaviti kao total += price
print(f"Total: {total}")
Ugniježđene petlje
U Pythonu korištenje ugniježđene petlje u osnovi znači dodavanje jedne petlje unutar druge petlje, a ovom tehnikom možemo učiniti neke nevjerojatne stvari. Na primjer, možemo jednostavno generirati popis koordinata.
Kao što znate, koordinata je kombinacija vrijednosti 'x' i 'y'. Recimo 0 i 0. Sada recimo da želite generirati popis koordinata kao što je ovaj. Imamo 0 i 0, zatim ćemo imati 0 i 1, zatim 0 i 2.
Zatim ćemo promijeniti 'x'. Koristit ćemo 1 za 'x', a još jednom ćemo koristiti ove 3 vrijednosti za 'y' koordinate.
Ove koordinate možemo lako generirati pomoću ugniježđenih petlji.
Da ti pokažem.
for x in range(4):
for y in range(3):
print(f'({x}, {y}')
Provjerimo izlaz:
Dopustite mi da objasnim kako se točno ovaj program izvršava. U prvoj iteraciji naše vanjske petlje, 'x' je 0. Sada smo na retku 2, ovdje imamo novu petlju koju nazivamo unutarnja petlja. U ovoj unutarnjoj petlji, u prvoj iteraciji, 'y' će biti 0, tako da se 0 i 0 ispisuju na terminalu.
Sada se kontrola vraća na liniju 2 ili našu unutarnju petlju. U ovoj drugoj iteraciji, 'y' će biti postavljen na 1, ali još uvijek smo u prvoj iteraciji naše vanjske petlje. Dakle, 'x' je i dalje 0, ali sada je 'y' povećan na 1.
Zato vidimo 0 i 1 na terminalu. To će se nastaviti sve dok se ne izvrši naša unutarnja petlja, a zatim će tumač ponovno otići u vanjsku petlju i ovaj se proces nastavlja dok se vanjska petlja ne završi.
Izazov
Evo jedne vježbe za vas, ali ova je malo zahtjevnija od vježbi koje ste dosad radili.
Koristeći ugniježđene petlje, napišite kôd za crtanje ovog oblika 'F':
Riješenje
numbers = [5, 2, 5, 2, 2]
for x_count in numbers:
output = ''
//Resetirati ćemo izlaznu varijablu na prazan niz.
for count in range(x_count):
output += 'x'
print(output)
Postoji mnogo jednostavniji način da se to izvede bez upotrebe ugniježđenih petlji. Ostavljam to vama da shvatite.
Zamotati
Osjećate li i vi toplinu koja raste sa svakim predavanjem?
Definitivno se tako osjećam. Učinio sam to mnogo jednostavnijim za razumijevanje.
Pokrenimo stvari sljedećim predavanjem.
Ostavi odgovor