A "FOR" CIKLUS (LOOP)
Az előző leckékben sokat megtanulhattunk a listákról és azokkal végzett műveletekről. Azonban projektjeink során előfordulhat, hogy nagyon hosszú listákkal kell dolgoznunk. Szerencsére nem kell minden egyes elemnél egyesével végrehajtanunk az utasítást.
A loop-ok nagyon hasznosak abban az esetben, ha a listában szereplő összes elemmel ugyanazt a műveletet szeretnénk elvégezni. A Python ciklusfüggvénye lehetővé teszi, hogy egy ismétlődő végrehajtást hozzunk létre minden iterációs folyamathoz.
A "for" cilkus használata a listában való ismétléséhez
Például a következő kódot használjuk az országok listájának iteratív kiíratásához:
country_list = ["Németország", "Ausztria", "Szerbia", "Svédország", "Svájc", "Olaszország"]
for country in country_list:
print(country)
Ezzel a kóddal “megmondjuk” a Pythonnak, hogy írassa ki minden ország nevét, amely benne van a listánkban. A Python ismétlődően végigmegy a listán szereplő összes országon, és egyenként kinyomtatja őket, amíg a lista ki nem ürül.
Az eredményt itt láthatjuk:
Németország
Ausztria
Szerbia
Svédország
Svájc
Olaszország
"for" ciklus példa az automatizált feladatrutinokra
A Python ciklusa lehetővé teszi a lista tartalmának ismételt feldolgozását. A példa kedvéért tegyük fel, hogy a listánkban olyan főiskolára jelentkezett diákok vannak, akik felvételt nyertek. Személyre szabott gratulációt szeretnénk nekik megjeleníteni a portálunkon. Azt szeretnénk, hogy az intézmény felületére belépve lássák, hogy felvételt nyertek.
A gratulációs üzenetünk minden diák részére ugyanaz lesz, azzal a különbséggel, hogy a nevükön fogjuk őket szólítani.
A kódunk így néz ki:
students = ["Vikor", "Mercédesz", "Dániel", "Andrea", "Tamás"]
for student in students:
print("Gratulálunk" + " " + student + "!" + " " + "Üdvözlünk a Budapesti Corvinus Egyetemen!")
Először egy listát hoztunk létre a felvételt nyert sikeres leendő hallgatók nevével, majd letároltuk őket a “students” tömbben. A tömb tartalmát egy “for” ciklus (Loop) segítségével íratjuk ki. A Python iteratívan végigmegy a lista összes elemén és a szövegsablonunkat használva soronként behelyettesíti a többen lévő összes elemet egyesével.
Konzol:
Gratulálunk Vikor! Üdvözlünk a Budapesti Corvinus Egyetemen!
Gratulálunk Mercédesz! Üdvözlünk a Budapesti Corvinus Egyetemen!
Gratulálunk Dániel! Üdvözlünk a Budapesti Corvinus Egyetemen!
Gratulálunk Andrea! Üdvözlünk a Budapesti Corvinus Egyetemen!
Gratulálunk Tamás! Üdvözlünk a Budapesti Corvinus Egyetemen!
Egyetemekre és szakirányra szabott üzenetek
Előfordulhat, hogy az üzenetünket még inkább személyre kellene szabni, hiszen a Budapesti Corvinus Egyetemen is nagyon sokféle szakirány van. A felvételt nyert hallgatóknak pedig szakirány szerint szeretnénk gratulálni. De megvalósíthatjuk ezt iskolánként is. Mindenképp tematikus tartalom környezetben szeretnénk őket köszönteni és nekik sok sikert kívánni.
Ilyenkor úgy különítjük el őket, hogy szakirányonként és/vagy szakirányonként új tömböket hozunk létre, új listaelemekkel (nevekkel). Ez azért fontos, mert a “for” ciklusunk (Loop) ugyan azokat a műveleteket ismétli, de egyformán a lista összes tagjára. Tehát, ha külön üzenetet szeretnénk megjeleníteni hallgatói szakirányok szerint, külön listát kell külön tömbökhöz rendelnünk.
Példák új egyetemi diákok köszönésére:
# Külön hallgatói csoportokat hozunk létre, majd letároljuk őket tömbökben
# Corvinus - Gazdálkodási és menedzsment szak
cor_management_students = ["Mercédesz", "Tamás"]
# Corvinus - Marketing és kereskedelem szak
cor_marketing_students = ["András", "Eszter"]
# Semmelweis - Klinikai gyógyszerfejlesztési szak
sem_doctor_students = ["Vikor", "Andrea"]
# Semmelweis - Neurológiai szakgyógytornász szak
sem_neurological = ["Kriszina", "Lajos"]
# for Loop a Corvinus Egyetem Gazdálkodási és menedzsment szakára, hallgatók lekérdezése és tematikus névre szóló üdvözlés
for student in cor_management_students:
print("Gratulálunk" + " " + student + "!" + " " + "Üdvözlünk a Budapesti Corvinus Egyetem Gazdálkodási és menedzsment szakirányú képzésén!")
print("A Gazdálkodási és menedzsment tantestület nevében kívánunk Neked sok sikert és eredményes tanévet!")
print("\n")
# for Loop a Corvinus Egyetem Kereskedelem és Marketing szakára, hallgatók lekérdezése és tematikus névre szóló üdvözlés
for student in cor_marketing_students:
print("Gratulálunk" + " " + student + "!" + " " + "Üdvözlünk a Budapesti Corvinus Egyetem Kereskedelem és Marketing szakirányú képzésén!")
print("A Kereskedelem és Marketing tantestület nevében kívánunk Neked sok sikert és eredményes tanévet!")
print("\n")
# for Loop a Semmelweis Egyetem Klinikai gyógyszerfejlesztési szakára, hallgatók lekérdezése és tematikus névre szóló üdvözlés
for student in sem_doctor_students:
print("Gratulálunk" + " " + student + "!" + " " + "Üdvözlünk a Semmelweis Egyetem Klinikai gyógyszerfejlesztési szakirányú továbbképzésen!")
print("A Semmelweis Egyetem Klinikai gyógyszerfejlesztési tantestület nevében kívánunk Neked sok sikert és eredményes tanévet!")
print("\n")
# for Loop a Semmelweis Egyetem Neurológiai szakgyógytornász szakára, hallgatók lekérdezése és tematikus névre szóló üdvözlés
for student in sem_doctor_students:
print("Gratulálunk" + " " + student + "!" + " " + "Üdvözlünk a Semmelweis Egyetem Neurológiai szakgyógytornász szakirányú továbbképzésen!")
print("A Semmelweis Egyetem Neurológiai szakgyógytornász tantestület nevében kívánunk Neked sok sikert és eredményes tanévet!")
print("\n")
Futtatás után:
Gratulálunk Mercédesz! Üdvözlünk a Budapesti Corvinus Egyetem Gazdálkodási és menedzsment szakirányú képzésén!
A Gazdálkodási és menedzsment tantestület nevében kívánunk Neked sok sikert és eredményes tanévet!
Gratulálunk Tamás! Üdvözlünk a Budapesti Corvinus Egyetem Gazdálkodási és menedzsment szakirányú képzésén!
A Gazdálkodási és menedzsment tantestület nevében kívánunk Neked sok sikert és eredményes tanévet!
Gratulálunk András! Üdvözlünk a Budapesti Corvinus Egyetem Kereskedelem és Marketing szakirányú képzésén!
A Kereskedelem és Marketing tantestület nevében kívánunk Neked sok sikert és eredményes tanévet!
Gratulálunk Eszter! Üdvözlünk a Budapesti Corvinus Egyetem Kereskedelem és Marketing szakirányú képzésén!
A Kereskedelem és Marketing tantestület nevében kívánunk Neked sok sikert és eredményes tanévet!
Gratulálunk Vikor! Üdvözlünk a Semmelweis Egyetem Klinikai gyógyszerfejlesztési szakirányú továbbképzésen!
A Semmelweis Egyetem Klinikai gyógyszerfejlesztési tantestület nevében kívánunk Neked sok sikert és eredményes tanévet!
Gratulálunk Andrea! Üdvözlünk a Semmelweis Egyetem Klinikai gyógyszerfejlesztési szakirányú továbbképzésen!
A Semmelweis Egyetem Klinikai gyógyszerfejlesztési tantestület nevében kívánunk Neked sok sikert és eredményes tanévet!
Gratulálunk Vikor! Üdvözlünk a Semmelweis Egyetem Neurológiai szakgyógytornász szakirányú továbbképzésen!
A Semmelweis Egyetem Neurológiai szakgyógytornász tantestület nevében kívánunk Neked sok sikert és eredményes tanévet!
Gratulálunk Andrea! Üdvözlünk a Semmelweis Egyetem Neurológiai szakgyógytornász szakirányú továbbképzésen!
A Semmelweis Egyetem Neurológiai szakgyógytornász tantestület nevében kívánunk Neked sok sikert és eredményes tanévet!
ÁTTEKINTÉS
Ebben a fejezetben példákon keresztül szemléltetve vizsgálhattuk meg a for ciklus használatát, a Python beépített mechanizmusát, amellyel iteratív műveleteket hajthatunk végre egy lista elemein keresztül.
Feladat
Te szervezed Márk születésnapi partiját, mert megkért téged, hogy segíts neki a teendőkben. Azt tervezi, hogy meghívja három barátját.
Hozz létre egy for ciklust, amely kiírja három legközelebbi barátja nevét. Írasd ki a konzolba nekik ezt a meghívó szövegét a for ciklus segítségével, címezd meg névre szólóan.
Márk természetesen meghívott téged is a születésnapi bulira.
A meghívó üzenet végére írass ki egy külön szöveges részt: „Ott lesz mindenki, aki számít! Ünnepeljünk együtt!”.
MEGOLDÁSOK (A “FOR” CIKLUS (LOOP))
Feladat:
# Három barát lista létrehozása, letárolása az "invited_friends" tömbben
invited_friends = ["Ottó", "Bertalan", "Ricsi"]
# for ciklus + egyénileg megcímzett szövegsablon
for name in invited_friends:
print("Kedves" + " " + name + "!" + "Szeretettel meghívlak a születésnapi bulimra!")
# Sima szöveg a meghívó végére
print("Ott lesz mindenki, aki számít! Ünnepeljünk együtt!")
print("\n")
Output:
Kedves Ottó!Szeretettel meghívlak a születésnapi bulimra!
Ott lesz mindenki, aki számít! Ünnepeljünk együtt!
Kedves Bertalan!Szeretettel meghívlak a születésnapi bulimra!
Ott lesz mindenki, aki számít! Ünnepeljünk együtt!
Kedves Ricsi!Szeretettel meghívlak a születésnapi bulimra!
Ott lesz mindenki, aki számít! Ünnepeljünk együtt!