Szövegelj, úgyis listát mondasz

Az a helyzet, hogy a Pythonban van két objektumtípus, ami nagyon de nagyon hasonló. Nem, nem ugyanaz. De nagyon hasonló. Az egyik a string, avagy karakterlánc. A másik a lista.

Lássuk:

Az alábbi táblázatot átolvasva azt látjuk, hogy a string adattípus nem tud semmi olyat, amitől ő maga megváltozik. Ennek bíz’ oka vagyon, s majd egyszer jó sokára megbeszéljük, hogy mi, mert attól még lehet neki új értéket adni.

Művelet Mit csinál? Lista tudja? String tudja? Változtat az eredeti objektumon?
[szám] visszaadja a [szám] indexű elemet pipa pipa áthúzás
szeletelés visszaadja az objektum egy részét pipa pipa áthúzás
egyelés visszaadja az objektum egy részét pipa pipa áthúzás
append(elem) az objektum végére biggyeszt valamit pipa áthúzás pipa
extend(másik_objektum) az objektumot egy másik objektummal bővíti pipa áthúzás pipa
remove(elem) elvesz egy elemet az objektumból pipa áthúzás pipa
obj1 + obj2 egymás mellé helyezi a két objektumot, egy harmadikat alakítva ki belőlük pipa pipa áthúzás
insert(pozíció, elem) új elemet illeszt az objektumba pipa áthúzás pipa
pop(elem) elemet kiveszi az objektum végéről és visszaadja pipa áthúzás pipa
pop(pozíció, elem) pozíció-n álló elemet kiveszi az objektumból és visszaadja pipa áthúzás pipa
count(elem) megszámolja, hogy hányszor van az adott elem az objektumban pipa pipa áthúzás

És ami a videóból kimaradt

Ó, borzadály és kárhozat! Kihagytam azt, hogy miként adható meg az, hogy hány elemű egy lista és hány karakternyi egy szöveg. Ilyen esetekben a lista, illetve karakterlánc hosszáról beszélünk, ami ugye angolul length. A neki megfelelő függvény a len. Íme:


listám = ['hogy', 'felejtkezhettem', 'el', 'erről', 'a', 'függvényről']
karakterláncom = 'mikor pedig olyan fontos'

print('Ennyi elemű a lista:', len(listám))
print('Ennyi karakter a karakterlánc:', len(karakterláncom))

Feladatok

Mindegyik feladathoz a szöveg = “kenyeret ettem meggyel” karakterláncot használd!

F0019a: Számold meg, hány e betű van benne!

F0019b: Írasd ki fordítva!

F0019c: Írasd ki a felhasználásával azt, hogy “Ma kenyeret etettem meggyel és finom volt.” ! Ne hagyd magad befolyásolni a sok új cucctól, ezt eddig is tudtad, vesszővel is, +-jellel is.

F0019d: Írasd ki minden 3. karakterét!

F0019e: Írasd ki karakterenként, külön sorba! A sztringek ugyanúgy bejárhatók, mint egy lista. (Megoldás az expand source-re kattintva.)

szöveg = "kenyeret ettem meggyel"

for betű in szöveg:
    print(betű)

F0019f: Írasd ki karakterenként, de egy sorba! (Megoldás az expand source-re kattintva.)


szöveg = "kenyeret ettem meggyel"

for betű in szöveg:
    print(betű, end='')

F0019g: Írasd ki karakterenként, minden karakter után egy szóközzel, egy sorba! (Megoldás az expand source-re kattintva.)


szöveg = "kenyeret ettem meggyel"

for betű in szöveg:
    print(betű, ' ', sep='', end='')

Az előző alkalommal a listákat szeleteltük és egyeltük. Legközelebb megismerkedünk a lebegőpontos számokkal.

(A pipa: Check Mark by AFY Studio from the Noun Project. Az áthúzás: cancel by Tahsin Tahil from the Noun Project)

Advertisements

Szövegelj, úgyis listát mondasz” bejegyzéshez ozzászólás

  1. Én az e feladatnál egy kicsit “bonyolultabb”, hosszabb kódot írtam:

    n = 0
    for _ in szöveg:
    print(szöveg[n])
    n += 1

    A g-nél viszont talán egyszerűbbet, rövidebbet:

    for akármi in szöveg:
    print(akármi, end=’ ‘)

    Nyilván a cél elérése a legfontosabb, de gondolom 2. helyen meg az áll, hogy minél egyszerűbb, rövidebb kód írására kell törekedni, mert egy összetett feladatnál az a néhány plusz sor is számít egy kódban. Ezt jól gondolom, ugye?:)

    Kedvelés

  2. Milyen udvariasan hívtad fel a figyelmemet arra, hogy két f) feladat van, és egyetlen g) sincs:) Javítottam. És igen, igazad van, ez a kód tényleg okébb. Annyit fűznék hozzá, hogy ha nem valami kis beágyazott rendszerre fejlesztesz, akkor a nem egyszerűről és rövidről beszélünk, hanem _olvashatóról_: az a fontos, hogy két hónap múlva minél hamarabb (optimális esetben azonnal) megértsd, hogy a régi kódod, esetleg a kollégád régi kódja, esetleg a cégtől régen eltávozott egykori kollégád kódja mi a phenét csinál. És ezen a ponton az egyszerű esetleg ellenmond a rövidnek. De ezen a ponton teljesen te nyertél:)

    Kedvelés

    • Köszönöm, a hozzászólásom lényege ez volt, hogy 2 lehetséges kódmegoldás közül mire kell törekedni kódolásnál. Ezek szerint az érthetőség, olvashatóság fontosabb a rövidségnél.
      Semmiképpen nem akartam versengeni vagy korrigálni egy megoldásodat. Maximálisan tisztellek a pythonidomár projekted okán és személy szerint nagyon hálás is vagyok érte!

      Kedvelés

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