Python feladatok és tesztek (231 feladat)

Az oldal folyamatos fejlesztés alatt áll. Ha észrevételed van, örülnénk, ha megosztanád velünk: info @ tanit . hu
iPhone-okra egy Python programozási lehetőség: Python 3IDE, Androidos mobilokra: QPython 3L
Az érettségi feladatokat a mellékletekkel, megoldásokkal együtt az Oktatási Hivatal weboldaláról vettük át.

Tartalomjegyzék

06 Műveletek listákkal URL

06-00 Műveletek listákkal - teszt URL

Feladat leírás:
A lista (list) egy összetett adattípus, azaz egy változó több adatelemet foglal magában. Szögletes zárójelek közé írjuk az elemeket, egymástól vesszővel elválasztva.
Az elemek indexelhetők, ezért az értékek ismétlődhetnek. A lista eleme lehet lista is.

len(lista) - a lista elemeinek darabszáma
sum(lista) - a lista elemeinek összege
min(lista) - a lista legkisebb eleme
max(lista) - a lista legnagyobb eleme
x in lista - az x elem benne van-e a listában
lista[-n] - a lista hátulról n-edik eleme
lista[n] - a lista n-edik eleme (a sorszámozás nullával kezdődik)
lista[n:m] - rész-lista az n-edik elemmel kezdve és m-ediket már nem belefoglalva (a sorszámozás nullával kezdődik)
lista[::n] - a lista minden n-edik eleme (nullával kezdődik a sorszámozás)
lista[::-1] - a lista megfordítása
lista[n] = x - a lista n-edik elemének cseréje x-re
lista.append(x) - Az x értéket felveszi a lista végére
lista.clear() - törli a lista összes elemét
lista.copy() - létrehozza a lista másolatát
lista.count(x) - visszaadja, hogy az x értékből hány példány van a listában
lista.index(x) - visszaadja az x érték első előfordulásának az indexét
lista.insert(n, x) - beszúrja az x értéket a lista n-edik helyére
lista.remove(x) - törli a listából az x elem első előfordulását
lista.reverse() - megfordítja a lista elemeinek a sorrendjét
lista.sort() - emelkedő sorba rendezi a lista elemeit
lista1 + lista2 - listák összefűzése
lista * n - a lista elemeinek megtöbbszörözése n-szer

szöveg.split() - egy szövegből készít listát. A lista elemeit a szövegből szóközök mentén tagolja.
szöveg.split("\n") vagy szöveg.splitlines()- egy szövegből készít listát. A lista elemeit a szövegből sortörések mentén tagolja.
a, b, c = lista - a lista elemeit adja értékül a változóknak. Fontos, hogy annyi változó kell legyen, ahány eleme van a listának.
print(*lista) - egy lista elemenkénti kiírása

Példa:
üresLista = []
számLista = [10, 20, 30, 40]
vegyesLista = [1, 'ablak', [], True, None, 1.5]

Oldd meg az alábbi űrlap feladatait: 06 Műveletek listákkal - teszt

06-01 Lista információk URL

Feladat leírás:
Hozz létre egy "06-01 Lista informaciok.py" Python fájlt.
Adott az alábbi lista:
data = [3, 45, 6, 8, 324, 56, 23, 45, 98, 777, 678, 83, 65, 98]
A mintának megfelelő módon írjuk ki:
- hány elem van a listában
- a lista első elemét
- a lista utolsó elemét
- a lista harmadik és ötödik elemének az összegét
- a lista legkisebb értékét
- a lista legnagyobb értékét
- a lista elemeinek az összegét
- a lista elemeinek az átlagát
Akkor is helyesen működjön a program, ha módosítjuk a listát!
Végeredmény minta (részlet):
06-01 Lista információk

06-02 Lista információk URL

Feladat leírás:
Hozz létre egy "06-02 Lista informaciok.py" Python fájlt.
A mellékelt forráskódot egészítsd ki, hogy a 'data' listáról írja ki az alábbi információkat a mintának megfelelően:
- hány elem van a listában
- a lista legnagyobb értékét
- a lista első elemét
- a lista utolsó előtti elemét
- a lista első és utolsó előtti elemének a szorzatát
- a lista második és harmadik elemének a különbségét
- a lista legkisebb értékének a dupláját
- a lista elemeinek az összegét
- a lista elemeinek az átlagát
Természetesen a generált véletlen számok minden futtatáskor mások lesznek, így a mintában mutatott konkrét értékek nem mérvadóak.
A mellékelt fájlt innen töltheted le: 06-02 Lista információk.txt
Végeredmény minta (részlet):
06-02 Lista információk

06-03 Lista részek URL

Feladat leírás:
Hozz létre egy "06-03 Lista reszek.py" Python fájlt.
Adott a lentebbi 'data' lista. Írasd ki
- a tizedik elemét
- a másodiktól az ötödik eleméig
- az utolsó előtti elemét
- az első három elemét
- az utolsó három elemét
- a kilencvenhetedik elemétől a végéig

data = [373, 919, 604, 657, 316, 184, 838, 751, 318, 279, 664, 181, 466, 159, 534, 732, 872, 848, 120, 880, 602, 842, 889, 930, 200, 185, 199, 375, 974, 922, 593, 342, 199, 617, 798, 503, 978, 210, 311, 866, 810, 484, 732, 778, 120, 661, 858, 178, 438, 126, 659, 867, 348, 432, 101, 431, 566, 595, 562, 473, 785, 546, 141, 922, 563, 601, 170, 544, 243, 905, 217, 359, 141, 789, 974, 588, 419, 502, 582, 672, 221, 210, 620, 256, 385, 373, 298, 223, 159, 962, 900, 585, 686, 662, 272, 715, 941, 816, 662, 354]
Végeredmény minta (részlet):
06-03 Lista részek

06-04 Listák összevetése URL

Feladat leírás:
Hozz létre egy "06-04 Listak osszevetese.py" Python fájlt és másold bele a mellékelt forrásfájlból az ott lévő kódot.
Egészítsd ki a programot úgy, hogy az abban a szereplő két listáról (data1, data2) állapítsd meg:
1. Melyik listának van több eleme
2. Melyikben szerepel többször a 10-es szám
3. Melyiknek nagyobb az elemei átlaga
Akkor is helyesen működjön a program, ha módosítjuk a két listát!
Forrásfájlok (zip)
Végeredmény minta (részlet):
06-04 Listák összevetése

06-05 Szavak száma URL

Feladat leírás:
Hozz létre egy "06-05 Szavak szama.py" Python fájlt.
A programban olvass be egy szöveget és írd ki, hogy hány szóból áll.
Abban biztosak lehetünk, hogy a begépelt szavakat szóközök választják el egymástól.
Végeredmény minta (részlet):
06-05 Szavak száma

06-06 Sorbarendezés URL

Feladat leírás:
Számokat olvasunk be és rendezve írjuk ki.
Hozz létre egy "06-06 Sorbarendezes.py" Python fájlt.
Olvass be öt egész számot egy beolvasással, a számokat pontosvesszővel és szóközökkel elválasztva. A számok lehetnek negatívak is.
Feltételezhetjük, hogy a megadott minta szerint adja meg a felhasználó a számokat, azt külön nem kell ellenőrizni.
A beolvasott számokat írjuk ki csökkenő sorrendben, dupla kisebb jellel és szóközökkel elválasztva.
A beolvasáshoz és kiíráshoz lásd a mintát.
Végeredmény minta (részlet):
06-06 Sorbarendezés

06-07 Lista módosítása URL

Feladat leírás:
Egy megadott listát módosítunk.
Hozz létre egy "06-07 Lista modositasa.py" Python fájlt.
Adott a 'data' lista: data = [20, 10, 30, 50, 40]
1. Tájékoztasd a felhasználót a program működéséről a mintának megfelelően!
2. Írasd ki a listát a konzolra a mintának megfelelően!
3. Kérj be a felhasználótól egy kétjegyű számot és azt szúrd be a lista második helyére! A felhasználó jó számot ad meg, azt nem kell ellenőrizni.
4. Írd ki a módosított listát!
5. Kérd be a felhasználótól, hogy melyik elemet akarja törölni! A felhasználó meglévő elemet ad meg, azt nem kell ellenőrizni.
6. Töröld a kért elemet a listából és írd ki újra a listát!
7. Rendezd a listát és írd ki újra!
8. Fordítsd meg a lista elemeinek a sorrendjét és írd ki újra!
Végeredmény minta (részlet):
06-07 Lista módosítása-0
Végeredmény minta (részlet):
06-07 Lista módosítása-1

06-08 Keresés listában URL

Feladat leírás:
Előre megadott listában keresünk meg adatokat.
Hozz létre egy "06-08 Kereses listaban.py" Python fájlt.
Adott az alábbi lista:
dataList = """Név;Életkor;Város
Németh Kamilla;19;Debrecen
Fekete Géza;18;Pécs
Kovács Péter;27;Budapest
Kiss Tibor;20;Debrecen
Szabó Erzsébet;21;Budapest
Szilágyi Ede;18;Pécs
Agárdi Pál;26;Budapest
Pálosi Richárd;23;Budapest
Budai Máté;19;Debrecen
Karácsony Antal;20;Budapest
Aradi Márta;27;Pécs
Piros Adél;29;Debrecen
Bíró Zsolt;16;Budapest
Szabados Attila;25;Debrecen
Román Sarolta;24;Budapest
Virág Bertalan;22;Pécs
Varga Imre;18;Budapest
Tóth Sándor;22;Debrecen
Nagy Ibolya;23;Pécs
Horváth Ferenc;17;Budapest
Balogh Edina;26;Budapest
"""

Ebből a listából programmal keresd ki a legidősebb budapestit és a minta szerint írd ki a nevét és életkorát.
A program akkor is helyesen működjön, ha az adatlista módosul.
Végeredmény minta (részlet):
06-08 Keresés listában

06-09 Számolás listában URL

Feladat leírás:
Előre megadott listában keresünk meg adatokat.
Hozz létre egy "06-09 Szamolas listaban.py" Python fájlt.
Adott az alábbi lista:
dataList = """Név*Életkor*Város
Nagy Ibolya*23*Pécs
Horváth Ferenc*17*Budapest
Agárdi Pál*26*Budapest
Pálosi Richárd*23*Budapest
Budai Máté*19*Debrecen
Karácsony Antal*20*Budapest
Román Sarolta*24*Budapest
Virág Bertalan*22*Pécs
Varga Imre*18*Budapest
Kovács Péter*27*Budapest
Kiss Tibor*20*Debrecen
Szabó Erzsébet*21*Budapest
Szilágyi Ede*18*Pécs
Aradi Márta*27*Pécs
Piros Adél*29*Debrecen
Bíró Zsolt*16*Budapest
Szabados Attila*25*Debrecen
Tóth Sándor*22*Debrecen
Balogh Edina*26*Budapest
Németh Kamilla*19*Debrecen
Fekete Géza*18*Pécs
"""

Ebből a listából programmal számold meg hány 20 év feletti budapesti van.
A program akkor is helyesen működjön, ha az adatlista módosul.
Végeredmény minta (részlet):
06-09 Számolás listában

06-10 Szavak fordítva URL

Feladat leírás:
Szövegben fordítjuk meg a szavak sorrendjét.
Hozz létre egy "06-10 Szavak forditva.py" Python fájlt.
A programban olvass be egy szöveget és írd ki úgy, hogy a szavak fordított sorrendben szerepeljenek.
Abban biztosak lehetünk, hogy a begépelt szavakat szóközök választják el egymástól.
A beolvasást és kiírást a mintának megfelelően szövegezd!
Végeredmény minta (részlet):
06-10 Szavak fordítva

06-11 Könyvek URL

Feladat leírás:
Könyvek adatait dolgozzuk fel.
Hozz létre egy "06-11 Konyvek.py" Python fájlt.
Kérd be egy könyv címét és a kiadás évét egyetlen beolvasással, majd írd ki, hogy ha a könyv új, azaz a kiadás éve 2022 vagy későbbi.
Utána kérdezd meg, hogy akar-e új könyvet megadni (i/n). Addig ismételd a beolvasást, amíg a felhasználó i-t ad meg.
A program kommunikációját a mintának megfelelően szövegezd.
Abban biztosak lehetünk, hogy a felhasználó szóközökkel választja csak el a szavakat és az évszámot
Végeredmény minta (részlet):
06-11 Könyvek-0
Végeredmény minta (részlet):
06-11 Könyvek-1
Ugrás az elejére