Python feladatok és tesztek (255 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. És van Online Python editor is :)

Tartalomjegyzék


11 Függvények URL


11-00 Függvények - teszt URL


Feladat leírás:
def függvényNeve(): - függvényt, azaz alprogramot definiáló kulcsszó
def függvényNeve(): - a függvény neve, amellyel rá hivatkozva le tudjuk azt futtatni
def függvényNeve(arg1, arg2): - vesszővel elválasztott paraméterek, avagy argumentumok. A függvény által várt bejövő értékek függvényen belüli neve
global - a függvényen kívüli változók eléréséhez használt kulcsszó
return x - a függvény visszatérési értékének a megadása

Példák:
Egyszerű, szöveget kiíró függvény visszatérési érték nélkül
def kiírás():
 print('Szép napot!')
# És ahogy a függvényt meghívjuk, akár többször is:
kiírás(); kiírás()

Paramétert használó függvény
def kiiras(név):
 print(f'Szép napot {név}!')
# És ahogy a függvényt meghívjuk, akár többször is:
kiírás('Kamilla'); kiírás('Sándor')

A bejövő paraméter dupláját visszaadó függvény
def dupla(x):
 return x * 2
# És ahogy a függvényt meghívjuk:
y = dupla(3)
z = dupla(7)

Oldd meg az alábbi űrlap feladatait: 11 Függvények - teszt

11-01 Függvény - Páratlan URL


Feladat leírás:
Egy függvényt tesztelünk, amely egy egész számról mondja meg, hogy páratlan-e
Hozz létre külön mappában egy "11-01 Fuggveny - Paratlan.py" Python fájlt.
Írj egy függvényt "paratlan" néven, amely bool értéket ad vissza.
Bemenő paramétere egy egész szám.
True-t ad vissza, ha a bemenő paraméter páratlan. False-t ad vissza, ha páros.
Hibára fut, ha a bejövő paraméter nem szám.
A függvény teszteléséhez a főprogram kérjen be egy egész számot a felhasználótól.
A program kommunikációja a mintának megfelelően történjen.
Végeredmény minta (részlet):
11-01 Függvény - Páratlan-0
Végeredmény minta (részlet):
11-01 Függvény - Páratlan-1

11-02 Függvény - Szorzat URL


Feladat leírás:
Egy függvényt tesztelünk, amely két szám szorzatát adja vissza eredményül.
Hozz létre külön mappában egy "11-02 Fuggveny - Szorzat.py" Python fájlt.
Írj egy függvényt "szorzat" néven, amely két számot vár paraméterül és visszaadja a szorzatukat.
Ha nem számot adnak meg, fusson hibára!
Végeredmény minta (részlet):
11-02 Függvény - Szorzat

11-03 Függvény - Kisebb duplája URL


Feladat leírás:
Egy függvényt tesztelünk, amely két szám közül adja vissza a kisebb dupláját.
Hozz létre külön mappában egy "11-03 Fuggveny - Kisebb duplaja.py" Python fájlt.
Írj egy függvényt "kisebbDupla" néven, amely két számot kap paraméterül és visszaadja a kisebb szám dupláját.
Végeredmény minta (részlet):
11-03 Függvény - Kisebb duplája

11-04 Függvény - Magánhangzó URL


Feladat leírás:
Egy függvényt tesztelünk, amely egy karakterről állapítja meg, hogy magánhangzó-e.
Hozz létre külön mappában egy "11-04 Fuggveny - Maganhangzo.py" Python fájlt.
Írj egy függvényt "maganhangzo" néven, amely a bejövő betűről megállapítja, hogy az magánhangzó-e. Azaz True értékkel tér vissza, ha magánhangzó, különben False.
Végeredmény minta (részlet):
11-04 Függvény - Magánhangzó-0
Végeredmény minta (részlet):
11-04 Függvény - Magánhangzó-1

11-05 Függvény - Páros-páratlan kiírás URL


Feladat leírás:
Egy függvényt tesztelünk, amely egy egész szám alapján kiírja, hogy az páratlan-e.
Hozz létre külön mappában egy "11-05 Fuggveny - Paros-paratlan.py" Python fájlt.
Írj egy függvényt "parosParatlan" néven, amely a bejövő paraméter alapján kiírja, hogy az páros-e vagy páratlan. Pl. így: Ez a szám ... páros!
Végeredmény minta (részlet):
11-05 Függvény - Páros-páratlan kiírás-0
Végeredmény minta (részlet):
11-05 Függvény - Páros-páratlan kiírás-1

11-06 Függvény - Nagyobb tripla URL


Feladat leírás:
Egy függvényt tesztelünk, amely két szám közül adja vissza a nagyobb háromszorosát.
Hozz létre külön mappában egy "11-06 Fuggveny - Nagyobb tripla.py" Python fájlt.
Írj függvényt "nagyobbTripla" néven, amely visszaadja a két szám közül a nagyobb háromszorosát.
Végeredmény minta (részlet):
11-06 Függvény - Nagyobb tripla

11-07 Függvény - Egyszerű menü URL


Feladat leírás:
A program bekér egy szöveget és a választásod alapján kiír ezt-azt a szövegről. Üres szövegre leáll.
Hozz létre külön mappában egy "11-07 Fuggveny - egyszeru menu.py" Python fájlt.
Olvassunk be egy szöveget.
Kérdezzük meg a felhasználót, hogy mit szeretne:
a) Kiírjuk hány 'a' betű van a szövegben
b) Kiírjuk a szöveg hosszát
c) Kiírjuk a szöveg nagybetűs változatát

Addig ismételjük a fentebb írtakat, amíg üres szöveget nem ad meg a felhasználó.
Mind a három feladatot (a, b, c) saját külön függvényekkel oldjunk meg.
Végeredmény minta (részlet):
11-07 Függvény - Egyszerű menü

11-08 Függvény - Kör URL


Feladat leírás:
Egy kör sugarát kérjük be és kiírjuk a kerületét cm-ben és a területét cm²-ben.
Hozz létre külön mappában egy "11-08 Fuggveny - Kor.py" Python fájlt.
Kérjük be a felhasználótól egy kör sugarát, cm-ben értve.
Feltételezhetjük, hogy a felhasználó valóban számot ad meg, de az lehet tört szám is.
Írj két saját függvényt a kör adatainak a kiszámításához.

Az egyik függvény neve 'kerulet' legyen, bemenő paramétere a kör sugara cm-ben.
A függvény számolja ki a kör kerületét és írja is ki az eredményt a konzolra a minta szerint, cm-ben.

A másik függvény neve 'terulet' legyen, bemenő paramétere a kör sugara cm-ben.
A függvény számolja ki a kör területét és adja vissza az eredményt.
A szöveges, minta szerinti cm²-ben számolt kiírást a főprogramban hajtsuk végre.

Az eredményeket mindkét esetben 2 tizedesre kerekítsük.
Végeredmény minta (részlet):
11-08 Függvény - Kör

11-09 Függvény - Négyzet URL


Feladat leírás:
Egy négyzet oldalhosszát kérjük be és kiírjuk a kerületét cm-ben és a területét cm²-ben.
Hozz létre külön mappában egy "11-09 Fuggveny - Negyzet.py" Python fájlt.
Kérjük be a felhasználótól egy négyzet oldalhosszát, cm-ben értve.
Feltételezhetjük, hogy a felhasználó valóban számot ad meg, de az lehet tört szám is.
Írj két saját függvényt a négyzet adatainak a kiszámításához.

Az egyik függvény neve 'kerulet' legyen, bemenő paramétere a négyzet oldala cm-ben.
A függvény számolja ki a négyzet kerületét és írja is ki az eredményt a konzolra a minta szerint, cm-ben.

A másik függvény neve 'terulet' legyen, bemenő paramétere a négyzet oldalhossza cm-ben.
A függvény számolja ki a négyzet területét és adja vissza az eredményt.
A szöveges, minta szerinti cm²-ben számolt kiírást a főprogramban hajtsuk végre.

Az eredményeket mindkét esetben 2 tizedesre kerekítsük.
Végeredmény minta (részlet):
11-09 Függvény - Négyzet

11-10 Függvény - Egyenlő oldalú háromszög URL


Feladat leírás:
Egy egyenlő oldalú háromszög oldalhosszát kérjük be és kiírjuk a kerületét cm-ben és a területét cm²-ben.
Hozz létre külön mappában egy "11-10 Fuggveny - Haromszog.py" Python fájlt.
Kérjük be a felhasználótól egy egyenlő oldalú háromszög oldalhosszát, cm-ben értve.
Feltételezhetjük, hogy a felhasználó valóban számot ad meg, de az lehet tört szám is.
Írj két saját függvényt a egyenlő oldalú háromszög adatainak a kiszámításához.

Az egyik függvény neve 'kerulet' legyen, bemenő paramétere a egyenlő oldalú háromszög oldala cm-ben.
A függvény számolja ki a háromszög kerületét és írja is ki az eredményt a konzolra a minta szerint, cm-ben.

A másik függvény neve 'terulet' legyen, bemenő paramétere a háromszög oldalhossza cm-ben.
A függvény számolja ki a egyenlő oldalú háromszög területét és adja vissza az eredményt.
A szöveges, minta szerinti cm²-ben számolt kiírást a főprogramban hajtsuk végre.

Az eredményeket mindkét esetben 2 tizedesre kerekítsük.
Végeredmény minta (részlet):
11-10 Függvény - Egyenlő oldalú háromszög

11-11 Függvény - Prímek URL


Feladat leírás:
Egy szám-lista elemeiről állapítjuk meg, hogy prímek-e vagy a három hatványai.
Hozz létre külön mappában egy "11-11 Fuggveny - Primek.py" Python fájlt.
Adott egy egész számokat tartalmazó lista - lásd alább. Állapítsd meg minden egyes eleméről, hogy a három hatványa-e, vagy prím szám és írd ki a mintának megfelelően.
A prím osztók megtalálásához készíts egy függvényt "prim_osztok" néven, amelynek a bemenő paramétere egy egész szám, a visszatérési értéke pedig egy lista, amely tartalmazza a bejövő szám prím osztóit. Ha nincs prím osztója a bejövő számnak, akkor üres listát adjon vissza.
A számok listája:
lista = [123, 57, 8, 16, 29, 125, 81, 64, 127, 82, 729, 9]
Végeredmény minta (részlet):
11-11 Függvény - Prímek

11-12 Hőmérséklet adatok URL


Feladat leírás:
Budapest éves hőmérséklet statisztikáiból írunk ki adatokat.
Hozz létre külön mappában egy "11-12 Fuggveny - Homerseklet.py" Python fájlt.
Adott a BP_homerseklet.txt fájl, amely utf-8 kódolással tartalmazza Budapest éves hőmérsékleti adatait, pontosvesszőkkel elválasztva.
A fájl az alábbi fejlécet és adatokat tartalmazza: #ev;kozepho;maxho;maxho_nap;minho;minho_nap
Fejléc elemek magyarázata:
ev - évszám
kozepho - évi középhőmérséklet
maxho - a legmagasabb napi középhőmérséklet az évben
maxho_nap - a legmagasabb napi középhőmérséklet napja
minho - a legalacsonyabb napi középhőmérséklet az évben
minho_nap - a legalacsonyabb napi középhőmérséklet napja

1. feladat: Írjunk egy "beolvas" függvényt a fájl adatainak listába történő belvasására.
2. feladat: Ellenőrizzük, hogy minden év adata megvan-e a fájlban 1901-től 2020-ig (ez 120 adat).
Ha megvan minden adat, akkor írjuk ki, hogy: "Minden év adata megvan 1901-től 2020-ig."
Különben írjuk ki, hogy: "Hiányos a fájl, nincs meg minden adat 1901-től 2020-ig."
3. feladat: Írjuk ki azokat az éveket, amelyekben Karácsony napján (december 25-én) volt a leghidegebb.
4. feladat: Keressük meg azt az évet, amelyben a legnagyobb volt a minimális és maximális hőmérséklet közti különbség.

Az adatok forrása:
https://www.met.hu/eghajlat/magyarorszag_eghajlata/eghajlati_adatsorok/Budapest/adatok/eves_adatok/

A mellékelt fájlt innen töltheted le: BP_homerseklet.txt
Végeredmény minta (részlet):
11-12 Hőmérséklet adatok-0

11-13 Lista sorrend URL


Feladat leírás:
Beolvasunk 5 egész számot és e listáról írunk ki információkat.
Hozz létre külön mappában egy "11-13 Lista sorrend.py" Python fájlt.
Mindegyik alábbi feladathoz készítsünk saját függvényt.
A 2. feladattól kezdve a függvények bemenő paramétere a lista, visszatérési értékük pedig a kiíratandó teljes szöveges válasz a kérdésre.
1. Olvassunk be öt egész számot egy listába. Feltételezhetjük, hogy a felhasználó valóban csak egész számokat ad meg.
2. Írjuk ki a lista elemeit egy sorban, kötőjellel elválasztva, abban a sorrendben, ahogy azt a felhasználó megadta.
3. Írjuk ki a lista elemeit fordított sorrendben, egy sorban, kötőjellel elválasztva.
4. Írjuk ki, hányadik elem a legkisebb és mennyi az.
5. Írjuk ki, hányadik elem a legnagyobb és mennyi az.
6. Írjuk ki melyik elem áll a legközelebb a teljes lista átlagához és hogy az hányadik elem.

Végeredmény minta (részlet):
11-13 Lista sorrend

11-14 Függvényhívások URL


Feladat leírás:
Hozz létre egy "11-14 Fuggvenyhivasok.py" python fájlt.
Másold bele a mellékelt, tömörített "fuggvenyhivasok.py" fájl tartalmát.
Egészítsd ki a mellékelt programot az alábbiak szerint.
A program már tartalmaz három függvényt:
osztok(x) - A bejövő egész szám összes osztóját adja vissza egy listában
prim_osztok(x) - A bejövő egész szám prím osztóit adja vissza egy listában
kozos_osztok(x, y) - A bejövő két egész szám közös osztóit adja vissza egy listában

Egészítsd ki a programot úgy, hogy kérjen be a felhasználótól két egész számot.
A már meglévő függvényeket használva a mintának megfelelően
1. írd ki az első megadott szám összes osztóját.
2. írd ki a második megadott szám prím osztóit
3. írd ki a két megadott szám közös osztóit

A bejövő számokat nem kell ellenőrizni, biztosak lehetünk benne, hogy a felhasználó egész számokat ad meg.
Forrásfájlok (zip)
Végeredmény minta (részlet):
11-14 Függvényhívások

11-15 Python teszt URL


Feladat leírás:
Hozz létre egy "11-15 Python teszt.py" python fájlt.
Másold bele a mellékelt programot és egészítsd ki az alábbiak szerint.
A program már tartalmaz két függvényt:
feladat(feladatSzáma) - A függvény kiírja az adott sorszámú feladatot
ellenőrzés(feladatSzáma, válaszkód) - A függvény ellenőrzi, hogy az adott sorszámú feladatra beírt válasz helyes-e

Egészítsd ki a programot úgy, hogy kérdezze meg a felhasználótól, hány tesztkérdést szeretne megválaszolni.
A mintának megfelelően írja ki a tesztkérdést, amelyet véletlenszerűen választ ki a kérdések közül, olvassa be a felhasználó válaszát és írja ki, hogy helyes-e a válasz vagy helytelen.
A kérdések kiírásához és helyességük megállapításához használja a már meglévő függvényeket.
Forrásfájlok (zip)
Végeredmény minta (részlet):
11-15 Python teszt

11-16 Palindroma URL


Feladat leírás:
Egy beolvasott szövegről állapítjuk meg, hogy palindróma-e.
Palindroma az a szöveg, amely előröl és visszafele is ugyanaz. A szóközök és a kis és nagy betűk nem számítanak.
Hozz létre külön mappában egy "11-16 Palindroma.py" Python fájlt.
Írj egy függvényt "is_palindrom" néven, amely bool értéket ad vissza. Bemenő paramétere egy szöveg.
True-t ad vissza, ha a bemenő szöveg palindróma és False-t ad vissza ha nem az.
A függvény teszteléséhez a főprogram kérjen be egy szöveget a felhasználótól és írja ki, hogy a szöveg palindróma vagy sem.
A program kommunikációja a mintának megfelelően történjen.
Végeredmény minta (részlet):
11-16 Palindroma-0
Végeredmény minta (részlet):
11-16 Palindroma-1

11-17 Bináris számok URL


Feladat leírás:
Egy pozitív egész számot alakítunk bináris számmá.
Hozz létre egy "11-17 Binaris szamok.py" Python fájlt.
Olvassunk be egy pozitív egész számot és írjuk ki a bináris alakját.
A beépített bin() függvényt nem használhatod!
Ehhez készítsünk egy decBin() függvényt, amelynek van egy bemenő paramétere és sztringesen adja vissza a bináris értékét.
A felhasználó biztosan egész számot ad meg, azt nem kell ellenőrizni.
A program kommunikációját a mintának megfelelően alakítsd.
Végeredmény minta (részlet):
11-17 Bináris számok-0
Végeredmény minta (részlet):
11-17 Bináris számok-1

11-18 Ismeretség URL


Feladat leírás:
A megadott évszám alapján állapítjuk meg mióta tart az ismeretség.
Hozz létre külön mappában egy "11-18 Ismeretseg.py" Python fájlt.
Kérjük be a felhasználótól a megismerkedés évszámát.
Feltételezhetjük, hogy a felhasználó pozitív egész számot, valódi évszámot ad meg.
Írj egy saját függvényt evekszama() néven, amely a bejövő évszám paraméterből kiszámolja, hogy hány éve tart az ismeretség.
A kiszámolt értéket a függvény adja vissza, és az eredményt a főprogramban írjuk ki.
A számításnál fixen számolhatunk azzal, hogy idén 2023 van.
Végeredmény minta (részlet):
11-18 Ismeretség-0
Végeredmény minta (részlet):
11-18 Ismeretség-1

11-19 Pontból jegy URL


Feladat leírás:
Pontszámokhoz rendelünk osztályzatot.
Hozz létre egy "11-19 Pontbol jegy.py" Python fájlt.
A program osztályozzon le egy maximálisan 100 pontos dolgozatot az 50, 65, 80, 90 ponthatárok szerint.
A határérték a jobb jegyhez tartozik. Ha a pontszám negatív vagy száznál nagyobb, akkor a program írja ki, hogy hibás az adat!
A megoldás során készíts egy "pontbolJegy" nevű függvényt, amely egy "pontszám" nevű bejövő paramétert fogad és a visszatérési értéke a pontszámnak megfelelő osztályzat az alábbiak szerint:
0 alatt és 100 felett írjuk ki, hogy hibás az érték
90 és felette 5
80 és felette 4
70 és felette 3
60 és felette 2
60-ig 1-es
A főprogramban kérd be a pontszámot, majd a megfelelő érdemjegyet a "pontbolJegy" függvény használatával határozd meg és írd ki.
A program kommunikációját a mintának megfelelően szövegezd.
Végeredmény minta (részlet):
11-19 Pontból jegy-0
Végeredmény minta (részlet):
11-19 Pontból jegy-1
Végeredmény minta (részlet):
11-19 Pontból jegy-2
Végeredmény minta (részlet):
11-19 Pontból jegy-3

11-20 Számrendszerek URL


Feladat leírás:
Számokat alakítunk át más számrendszerbe.
Hozz létre egy "11-20 Szamrendszerek.py" Python fájlt.
Kérdezd meg a felhasználót, hogy binárisról decimálisra, vagy fordítva szeretne átalakítást végezni.
Ezt követően olvass be egy számot és ellenőrizd, hogy a megadott számrendszernek megfelel-e a megadott érték.
Ha hibás, azt jelezd és kérd be újra a számot.
A megoldás során készítsünk egy decBin() függvényt amelynek van egy bemenő paramétere és sztringesen adja vissza a bináris értékét.
Továbbá egy binDec() függvényt amelynek van egy bemenő paramétere és egész számként adja vissza a decimális értékét.
A beépített bin() függvényt nem használhatod!
A program kommunikációját a mintának megfelelően alakítsd.
Végeredmény minta (részlet):
11-20 Számrendszerek-0
Végeredmény minta (részlet):
11-20 Számrendszerek-1
Végeredmény minta (részlet):
11-20 Számrendszerek-2
Végeredmény minta (részlet):
11-20 Számrendszerek-3

11-21 Egyesek URL


Feladat leírás:
Egy 0 és 255 közötti szám 8 bites bináris alakjának elején álló egyeseket számoljuk meg.
Hozz létre egy "11-21 Egyesek.py" Python fájlt.
Kérj be a felhasználótól egy 0 és 255 közötti egész számot. Ezt egy decBin() nevű saját függvény segítségével alakítsd 8 bites bináris számmá.
Írj egy oneCount() függvényt, amelynek bemenő paramétere bináris szám. A visszatérő értéke egy egész szám, amely azt adja meg, hogy hány egyes van a bináris szám elején.
Ezeket a függvényeket használva írd ki a főprogramban a konzolra, hogy hány egyes van a felhasználó által megadott szám 8 bites bináris alajának az elején.
Abban biztosak lehetünk, hogy a felhasználó jó decimális értéket ad meg, azt nem kell ellenőrizni.
A program kommunikációját a mintának megfelelően alakítsd.
Végeredmény minta (részlet):
11-21 Egyesek-0
Végeredmény minta (részlet):
11-21 Egyesek-1
Végeredmény minta (részlet):
11-21 Egyesek-2

11-22 Kerekített összeg URL


Feladat leírás:
Összegeket kerekítünk.
Hozz létre egy "11-22 Kerekitett osszeg.py" Python fájlt.
Kérj be a felhasználótól egy összeget. Biztosak lehetünk benne, hogy pozitív egész számot ad meg, azt nem kell ellenőrizni.
Az összeget kerekítsd lefelé százasokra és írd ki, majd ugyanezt százasra felfelé kerekítéssel is tedd meg.
Ha a megadott összeg százzal osztható, akkor a két érték természetesen azonos.
A kerekítésekhez írj saját függvényeket kerekFel() és kerekLe() néven. Mindkét függvénynek egy bemenő paramtere van, egy egész szám, és a visszatérési érték a kerekített érték.
A program kommunikációját a mintának megfelelően szövegezd.
Végeredmény minta (részlet):
11-22 Kerekített összeg-0
Végeredmény minta (részlet):
11-22 Kerekített összeg-1

11-23 Kassza URL


Feladat leírás:
Egy bolt kasszájának kezelését segítjük.
Hozz létre egy "11-23 Kassza.py" Python fájlt.
Egy bolt.txt nevű, utf-8 kódolású szöveges fájlban tároljuk a termékek árlistáját: Termékkód; Megnevezés; Ár
A fájl tartalmaz fejléc sort, az első sorai így néznek ki:
Termékkód;Megnevezés;Fogyasztói ár
001;Kávé;250
002;Tea;200
003;Kenyér;300

A tárolt termékek kódja egész szám, és ha kevesebb mint három jegyű, akkor az elején kiegészül nullákkal.
Kérd be a felhasználótól a termék kódját. Ha háromnál kevesebb karaktert ad meg, akkor azt egészítsük ki balról nullákkal.
Kérd be a darabszámot. Biztosak lehetünk benne, hogy a felhasználó pozitív egész számot ad meg, azt nem kell ellenőrizni.
Írd ki, hogy mennyi a fizetendő összeg. Ha a kód nem szerepel a listában, akkor írd ki, hogy nincs ilyen termék és érjen véget a program.
Ezután kérdezd meg mennyit fizetett a vevő és írd ki mennyi a visszajáró. A befizetett összeg biztosan pozitív egész szám, azt nem kell ellenőrizni.
Ha kevesebbet fizetett a vevő, akkor írjuk ki, mennyit kell még fizetnie.

A megvalósítás során az adatok beolvasására használj saját függvényt beolvas() néven. Bemenő paramétere a fájl neve, visszatérő értéke pedig egy szótár (dictionary), amelynek kulcsai a termékek kódjai, az értékek pedig egy listában a megnevezés és az ár.
Pl.: árlista = {'001': ['Kávé', 250], '002': ['Tea', 200], '003': ['Kenyér', 300]}

A program kommunikációját a mintának megfelelően szövegezd.
A mellékelt fájlt innen töltheted le: bolt.txt
Végeredmény minta (részlet):
11-23 Kassza-0
Végeredmény minta (részlet):
11-23 Kassza-1
Végeredmény minta (részlet):
11-23 Kassza-2
Végeredmény minta (részlet):
11-23 Kassza-3

11-24 Kvíz URL


Feladat leírás:
Egy kvíz alkalmazást készítünk.
Hozz létre egy "11-24 Kviz.py" Python fájlt.
Másold be a mellékelt "kviz.txt" tartamát, és a programot egészítsd ki a feladatban leírtak szerint!
A programban találsz egy "toto" listát. Ez tartalmazza a kiírandó kérdéseket és második paraméterként azt, hogy a megadott állítás igaz (1), vagy hamis (0). Rendelkezésedre áll már két elkészített rész.
Kérj be a felhasználótól egy 1-6 közé eső egész számot! Figyelj rá, hogy csakis 1-6 közötti számot lehessen megadni! Addig ismételd a bekérést, amíg nem a kért intervallumból kapsz számot!
A kerdes() függvény megfelelő meghívásával biztosítsd, hogy megjelenjen a felhasználó által kért kérdés, és a felhasználó meg tudja adni, hogy helyes (1), vagy helytelen (0) az állítás!
A visszakapott értéket tárold el egy változóban!
Az eldont() függvény megfelelő meghívásával biztosítsd, hogy a felhasználó által megadott válasz legyen kiértékelve.
Biztosítsd, hogy a kérdésszám bekérésétől a válasz kiértékelésésig ismételten végrehajtódjon a kód, ameddig a felhasználó ki nem kíván lépni a programból!
A program kommunikációját a mintának megfelelően szövegezd.
A mellékelt fájlt innen töltheted le: kvíz.txt
Végeredmény minta (részlet):
11-24 Kvíz-0

11-25 Feltalálók URL


Feladat leírás:
Feltalálókról írunk ki adatokat.
Hozz létre egy "11-25 Feltalalok.py" Python fájlt.
A mellékelt "feltalalok.txt" fájl tudósok, feltalálók adatait tartalmazza. A fájl egy sorának szerkezet:
   feltaláló neve/születési év/halálozásának éve/találmány

1. Olvasd be a "feltalalok.txt" fájl tartalmát egy beolvas() függvény segítségével és tárold el az adatokat egy megfelelő adatszerkezetben!
Ügyelj a következőre: amennyiben egy tudós még él, úgy a szövegfájlban a halálozás éve üres. Ebben az esetben halálozási évként a 0 értéket tárold el!

2. Hány feltaláló/tudós adata szerepel a fájlban? Jelenítsd meg a minta szerint!

3. Jelenítsd meg a feltalálók nevét és találmányát a minta szerint!

4. Kérj be egy értéket! Jelenítse meg a képernyőn azon tudósok nevét, akik a megadott számnál több évig éltek!
Készíts "kiiras.txt" néven egy fájlt, melybe azon tudósok neve kerüljön külön-külön sorba, akik a bekért számnál több évig éltek.

A program kommunikációját a mintának megfelelően szövegezd.
A mellékelt fájlt innen töltheted le: feltalalok.txt
Végeredmény minta (részlet):
11-25 Feltalálók-0

11-26 Névelemzés URL


Feladat leírás:
Megadott neveket elemzünk.
Hozz létre egy "11-26 Nevelemzes.py" Python fájlt.
A program induláskor kérjen be egy nevet és egy születési évszámot, majd írja ki hány keresztneve van az illetőnek, és 2030-ban hányadik születésnapja lesz.
A kor meghatározásához hozz létre egy függvényt, kor2030 néven, ami a paraméterként kapott évszám alapján kiszámolja a 2030-ban betöltött kort!
A függvény csak adja visszatérési értékül a számítás eredményét, de a képernyőre ne írja ki!
Amíg a felhasználó kéri, kérje a következő nevet.

A program kommunikációját a mintának megfelelően szövegezd.
Abban biztosak lehetünk, hogy a felhasználó egy-egy szóközzel választja csak el a szavakat és a születési évszámot.
Végeredmény minta (részlet):
11-26 Névelemzés-0

11-27 Forgalom URL


Feladat leírás:
Kis cégek forgalmi adatait dolgozzuk fel.
Hozz létre egy "11-27 Forgalom.py" Python fájlt.
A mellékelt három fájlban "forgalom_2023_autoalkatresz.csv", "forgalom_2023_bababolt.csv", "forgalom_2023_cukraszda.csv" három különböző cég bevételi és kiadási adatai találhatók.
Mindhárom fájlban három oszlopban van a Dátum, Bevétel, Kiadás. Egy sorban vagy csak bevétel, vagy csak kiadási adat található.

1. Kérdezd meg a felhasználót, hogy melyik cég adatára kíváncsi.

2. A kiválasztott cég forgalmi adatait tartalmazó fájlt nyisd meg. A fájl megnyitásához készíts külön függvényt "megnyit()" néven, amelynek bemenő paramétere a megnyitandó fájl neve, vissszatérési értéke pedig megfelelő adatstruktúrában a fájlban lévő adatok.

3. Írd ki, hogy hány adat áll rendelkezésre a cég forgalmáról, azaz hány sor található a fájlban.

4. Írd ki, hogy a cégnek mekkora volt az össz nyeresége vagy vesztesége. Ehhez készíts egy függvényt "egyenleg()" néven, amelynek bemenő paramétere a cég forgalmi adatai, visszatérési értéke pedig a cég év végi forgalmi egyenlege. Pozitív ha nyereséges volt és negatív, ha veszteséges.

A program kommunikációját a mintának megfelelően szövegezd.
Forrásfájlok (zip)
Végeredmény minta (részlet):
11-27 Forgalom_0
Végeredmény minta (részlet):
11-27 Forgalom_1
Végeredmény minta (részlet):
11-27 Forgalom_2

11-28 Válogatás URL


Feladat leírás:
Egy pozitív egész számokat tartalmazó fájl adatait dolgozzuk fel.
Hozz létre egy "11-28 Valogatas.py" Python fájlt. A mintának megfelelően tájékoztasd a felhasználót a program működéséről.
Adott egy utf-8 kódolású fájl: adatok.txt, amelyben pozitív egész számok vannak. Minden sorban egyetlen szám.
Tájékoztasd a felhasználót a program működéséről, a mintának megfelelően.
Írj egy függvényt paros() néven, amelynek bemenő paramétere egy számokat tartalmazó lista, és ebből a listából visszaadja csak a páros számokat.
Írj egy függvényt paratlan() néven, amelynek bemenő paramétere egy számokat tartalmazó lista, és ebből a listából visszaadja csak a páratlan számokat.
Írj egy függvényt harmas() néven, amelynek bemenő paramétere egy számokat tartalmazó lista, és ebből a listából visszaadja csak a hárommal osztható számokat.

Az előbb említett függvények segítségével hozz létre három fájlt, amelyekbe kiírod a páros, a páratlan, a harmadikba pedig a hárommal osztható számokat.
A fájlokban minden szám külön sorban szerepeljen.
A fájlok neve: "paros.txt", "paratlan.txt" és "harmas.txt".

A program kommunikációját a mintának megfelelően szövegezd.
A mellékelt fájlt innen töltheted le: adatok.txt
Végeredmény minta (részlet):
11-28 Válogatás-0

11-29 Ezres tagolás URL


Feladat leírás:
Egész számokat tagolunk ezresével. Üres ENTER-re véget ér a program.
Készíts egy "11-29 Ezres tagolas.py" python fájlt.
Írj egy függvényt "ezresek()" néven, amelynek egyik paramétere egy pozitív egész szám, a másik pedig az ezreseket határoló karakter.

Kérd be a felhasználótól az ezres határoló karaktert. Ha nem egy karaktert ad meg, akkor ezt jelezd vissza és kérd újra.

Utána kérj be a felhasználótól egy pozitív egész számot, majd a függvényt használva írd ki úgy, hogy ezresével legyen tagolva.
Addig kérj be újabb számokat, amíg üres adatot nem ad meg a felhasználó. Abban biztosak lehetünk, hogy a felhasználó vagy üres adatot ad meg, vagy pozitív egész számot.

A program kommunikációját a mintának megfelelően szövegezd.
Az első mintában az ezres határoló egy szóköz!
Végeredmény minta (részlet):
11-29 Ezres tagolás_0
Végeredmény minta (részlet):
11-29 Ezres tagolás_1

11-30 Oszlopok URL


Feladat leírás:
Oszlopok pozícióit számoljuk ki.
Készíts egy "11-30 Oszlopok.py" python fájlt.
Kérj be a felhasználótól egy pozíciót, hogy az erdő szélétől hány méterre kezdődjenek az oszlopok és milyen sűrűn, azaz hány méterenként kell lerakni őket.
A két adatot egyszerre, egy beolvasással kérjük be, pontosvesszővel elválasztva.
Abban biztosak lehetünk, hogy jó értékeket ad meg a felhasználó, azt nem kell ellenőrizni.
Utána generálj egy véletlen számot, amely nagyobb mint az oszlopok távolsága, de kisebb mint 30. Ez lesz az oszlopokkal jelölendő távolság.
Ezt követően írd ki, hogy az erdő szélétől számítva milyen messze kell lerakni az egyes oszlopokat, mekkora a jelölendő hossz.
Ezeket a számokat írd ki a konzolra és egy oszlopok.txt szöveges fájlba úgy, hogy minden szám külön sorba kerüljön.

Azt is írd ki, hogy összesen hány oszlopot kell lerakni.

Az adatok bekéréséhez készíts függvényt, amelynek nincs bemenő paramétere, és egy két elemű listában adja vissza a kezdő pozíciót és az oszloptávot.
Végeredmény minta (részlet):
11-30 Oszlopok_0
Végeredmény minta (részlet):
11-30 Oszlopok_1

11-31 Sebesség URL


Feladat leírás:
Adott időre kell eljutni adott távolságra, annak sebességét számoljuk ki.
Hozz létre egy "11-31 Sebesseg.py" Python fájlt.
Autóval indulunk 13:00 órakor. Véletlenszerűen generálj egy időpontot délután 14:00 és 18:00 óra között.
A megteendő távolságot, ahova el szeretnénk jutni, 120 és 250 km között, a felhasználótól kérd be. A felhasználó megfelelő egész számot ad meg, azt nem kell ellenőrizni.
Írd ki, hogy mennyi időre és milyen messzire kell eljutni.
Mivel nem szeretnénk késni, az érkezési időpontot a megelőző kerek órára, a távolságot pedig 10 km-ekre felfelé kerekítve kezeljük. Ezeket a kerekített adatokat is írjuk ki.
Számoljuk ki, hogy így a kerekített időpont és távolság esetén hány km/óra átlag sebességgel kellene haladnunk, az értéket egész számra kerekítve.
Ha a kiszámolt átlag sebesség több mint 100 km/óra, akkor javasoljuk a 12:00-órás indulást, és arra adjuk meg a sebességet.
A módosított időpontot egy saját, kerekIdő() függvénnyel számoljuk ki, amelynek két bemenő paramétere két egész szám, az óra és a perc, visszatérési értéke pedig egy lista, amelynek két értéke a kerekített óra és perc.
A módosított távolságot egy kerekTáv() függvénnyel számoljuk ki, amelynek bemenő paramétere egy egész szám, a megteendő km, visszatérési értéke pedig a 10-esekre felfelé kerekített km érték.
A program kommunikációját a mintának megfelelően szövegezd.
Végeredmény minta (részlet):
11-31 Sebesség-0
Végeredmény minta (részlet):
11-31 Sebesség-1

11-32 Szövegelemzés URL


Feladat leírás:
A szoveg.txt fájl tartalmát elemezzük.
Hozz létre egy "11-32 Szovegelemzes.py" Python fájlt.
Olvasd be a szoveg.txt utf-8 kódolású szövegfájl tartalmát.
Írj egy függvényt takarit() néven, amelynek bemenő paramétere egy sztring, és amit visszaad, az egy letakarított sztring.
A takarítás azt jelenti, hogy a szöveg elejéről és végéről letörli a szóközöket és tabulátor jeleket, továbbá a többszörözött szóközöket egy szóközre redukálja.

A program más szövegfájlokkal is jól működjön.
Azaz ha takarítás után üres a szöveg, akkor írjuk ki, hogy a fájl üres.

A szöveg takarítását követően írd ki a szövegről az alábbiakat:
- Milyen hosszú a szöveg, azaz hány karakterből áll.
- Hány szóból áll a szöveg. Szavaknak az egyszerűség kedvéért a szóközökkel vagy sortörésekkel tagolt szövegrészeket értjük.
- Hány sorból áll a szöveg.
- A szöveg legrövidebb szava.
- A szöveg leghosszabb szava.
- A szavak átlagos hossza, egész számra kerekítve.

A program kommunikációját a mintának megfelelően szövegezd.
A mellékelt fájlt innen töltheted le: szoveg.txt
Végeredmény minta (részlet):
11-32 Szövegelemzés-0
Ugrás az elejére