Értem én, hogy gőzgép, de hányadik?

Ma valami fölöslegeset tanulunk. Sőt, legközelebb is azt fogunk. Illetve…

Ezt a két posztot az köti össze, hogy amit megismerünk bennük, az semmi új funkcionalitást nem hoz a programozási készségeink közé. Akkor meg minek?

Nos, a Python-programozásban van olyan,  hogy “Pythonos” megoldás, azaz lehet ezt más programozási nyelvek módszere szerint is csinálni, de Pythonban így szép, így érdemes. Miért érdemes így? Azért, mert tömörebb, és/vagy jobban olvasható kódot készítünk vele. A jól olvashatóság meg jelentős lépés a jól karbantarthatóság felé – ne feledjük, hogy a programozás lényege az, hogy olyan programokat írjunk, amelyek éveken át használhatóak, és nem baj, ha a két év múlva felmerülő programhiba (magyarul: bug) javításakor azonnal látszódik, hogy mit csinál a programunk.

Egyébiránt láttál már ilyet a Pythonidomár oldalait olvasgatva is, például amikor nem azt mondtuk, hogy

if esik_az_a_rohadt_eső == True:
    print('Elegem van!')

hanem csak azt, hogy:

if esik_az_a_rohadt_eső:
    print('Elegem van!')

Így Pythonosabb. Ilyen Pythonosság a map() függvény, vagy a join() tagfüggvény is.

Na, vissza a mai poszthoz. Mondjuk, hogy van egy rakat gőzmozdonyunk. Legyen mondjuk a Rocket, a 424, Thomas és a Flying Scotsman. Tegyük őket listába és írjuk ki, hogy:

1: Rocket
2: 424
3: Thomas
4: Flying Scotsman

Így, számokkal. Törjük a fejünket egy percet, és ha tudjuk, miként oldanánk meg a feladatot, nézzük meg a videót.

mozdonyok = ['Rocket','424','Thomas','Flying Scotsman']

sz = 1
while sz <= len(mozdonyok):
    print(sz, ': ', mozdonyok[sz-1], sep='')
    sz += 1

print()

for sz2 in range(len(mozdonyok)):
    print(sz2 + 1, ': ', mozdonyok[sz2], sep='')

print()

for sz3, mozdony in enumerate(mozdonyok):
    print(sz3 + 1, ': ', mozdony, sep='')

Szóval így megy ez az enumerate esetén:) Két változót pörget egyszerre a for: az egyik a számláló, a másik – a sima bejárós ciklushoz hasonlóan – az épp aktuális listaelem.

Feladatok:

F0043a: Van egy listád a hónapok neveivel, meg egy másik a 30 napos hónapok neveivel. A most tanult enumerate és a kiválogatás használatával írj olyan listát (mármint hagyományos értelemben vettet, nem Python-adatszerkezetet) a képernyőre, ahol egymás alatt látszanak a hónapok, egy-egy sorban a hónap sorszámával, nevével a hónap napjainak számával. A programod tudja, hogy február hány napos.

F0043b: Tölts fel egy listát random egészekkel, majd az enumerate használatával írd ki, hogy ki hányadik a nagyság szerinti sorban. Ehhez a listát rendezned kell, mert ebben a feladatban az is fontos, hogy a rendezés ne rontsa el az eredeti listát.

Legutóbb tesztversenyeztünk. Legközelebb listaértelmezünk.

Reklámok

Vélemény, hozzászólás?

Adatok megadása vagy bejelentkezés valamelyik ikonnal:

WordPress.com Logo

Hozzászólhat a WordPress.com felhasználói fiók használatával. Kilépés /  Módosítás )

Google+ kép

Hozzászólhat a Google+ felhasználói fiók használatával. Kilépés /  Módosítás )

Twitter kép

Hozzászólhat a Twitter felhasználói fiók használatával. Kilépés /  Módosítás )

Facebook kép

Hozzászólhat a Facebook felhasználói fiók használatával. Kilépés /  Módosítás )

Kapcsolódás: %s