Meseautómárkák

A múltkor már megismerkedtünk a listákkal futólag, de alapvetően csak azért, hogy jobban megértsük bejárós ciklust, és a számlálós ciklusok kapcsán a listákhoz nagyon hasonló range-objektumok, azaz sorozatok természetét. Azonban a listák ennél lényegesen fontosabbak, így most visszatérünk hozzájuk.

Mit is tudunk eddig a listákról?

  • létrehozásuk vagy úgy megy, hogy a lista nevét követően szögletes zárójelet nyitunk és zárunk:
    az_én_listám = []
  • vagy úgy, hogy kezdeti értékekkel is feltöltjük a listát:
    az_én_listám = ['aladár', 'bétamás', 'gammatyi']
  • tehetünk bele számokat is:
    az_én_listám = [55, 13, 1841, -567]
  • sőt, akár vegyesen is lehetnek benne a különböző típusú – eddig az int, str és bool típust tanultuk – adatok:
    az_én_listám = [55, 'bétamás', False]
  • új értéket a lista végére biggyeszteni az append() tagfüggvénnyel lehet:
    az_én_listám.append('Ez egy új str típusú érték, de lehetne más típusú is ám.')
  • és azt is tudjuk, hogy a for-ciklussal bejárhatók.

Igen okosak vagyunk, nemdebár? És még csak most jön a Java. Ja nem, nem lesz Java, Pythonnal foglalkozunk.


autóim = ['Dacia', 'Jeep', 'Opel', 'Lotus', 'Volvo', \
          'Fiat', 'Aston Martin', 'Mazda', 'Saab', 'Toyota', 'Audi']

új_autóim = []
új_autó = None

while új_autó != '':
    új_autó = input('Milyen autót vettél ma? ')
    if új_autó != '':
        új_autóim.append(új_autó)

print('Új autóim:', új_autóim)

autóim.extend(új_autóim)
print('Midenféle autóim:', autóim)

eladnivaló_autó = input('Mit adjunk el? ')
autóim.remove(eladnivaló_autó)
print('Autóim eladás után:', autóim)
print(eladnivaló_autó, '-ból maradt még:', autóim.count(eladnivaló_autó))

A programban két listát kezelünk. A while-ciklusban (10. sor) az append() tagfüggvényt használjuk arra, hogy az újonnan vásárolt autókat az új_autóim lista végére biggyesszük. Az extend() tagfüggvény (14. sor) egy lista másik listával való bővítésére szolgál: bővítésre_váró_lista.extend(lista_amivel_bővítünk). A remove() tagfüggvény (18. sor) kiveszi a listából azt, amit a zárójelben megadunk, pontosabban annak az értéknek az első előfordulását. Ha nem talál ilyen értéket, akkor hibát jelez. A count() tagfüggvény (20. sor) megszámolja, hogy a listában hányszor fordul elő az, ami a zárójelben van. Szakszerűbben úgy mondjuk, hogy megszámolja, hogy a listában hányszor fordul elő a tagfüggvénynek paraméterként átadott listaelem.

Feladatok:

F0017a: Írd meg azt a programot, amely külön-külön listába bekéri az európai királyságok (Belgium, Dánia, Hollandia, Nagy-Britannia, Norvégia, Spanyolország, Svédország), nagyhercegségek (Liechtenstein, Luxemburg), és hercegségek (Andorra, Monaco), neveit. A listák bővülése legyen nyomon követhető: minden újabb listatag megadása előtt legyen látható, hogy eddig ki van a listában. A program ezt követően a három listát egy negyedik, monarchiák nevű listához adja. Végül hozzáadja Vatikánt, és kiírja az egyesített listát. (Megoldást nem adok, a fenti videó alapján mennie kell.)

F0017b: Írj olyan programot, amely listába gyűjti 10 000 000 kockadobás (1-6 közötti véletlenszám) eredményét, majd kiírja, hogy az egyes számokat hányszor dobta a gép! Ha a Python véletlenszám-generátora jól működik, akkor úgy ezres pontosságig saccold meg, hogy az egyes számokat hányszor fogja dobni a program. A programodban van egy input, egy listadefinícíós sor, és maga a program nem más, mint két for-ciklus, összesen négy sorban. Először írd meg a pszeudokódos verziót! Ha kész, vagy ha elakadsz, az expand source-ra kattintva olvashatod. Végül írd meg a programot! (Megoldás itt.)


dobások listát létrehoz

ciklus 1-től 10 000 000-ig
    dobások-ba: véletlenszám
ciklus vége

ciklus szám = 1-től 6-ig
    ki: szám, dobások-ban megszámol számot
ciklus vége

 

Előzőleg rendet raktunk a ciklusok népes táborában. Legközelebb megtudjuk, mit jelent az, hogy index, ha listáról beszélü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 )

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 )

Google+ kép

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

Kapcsolódás: %s