Keresés


Toplista

Toplista
  • betöltés...

Magántanár kereső

Ha szívesen korrepetálnál, hozd létre magántanár profilodat itt.
Ha diák vagy és korrepetálásra van szükséged, akkor regisztrálj be és írd meg itt, hogy milyen tantárgyban!

Python házi

236
1.Készítsen Python konzolos alkalmazást a következő feladatok megoldására, melynek projektjét BukkMaraton2019 néven mentse el!
2.Adjuk meg, hogy összesen hány versenyző indult a versenyen.
3.Az időt váltsuk át másodpercbe, és adjuk meg kié volt a legjobb idő és mennyi volt az.

Jelenleg 1 felhasználó nézi ezt a kérdést.
0
Középiskola / Informatika

Válaszok

1
Kissé ködös, hogy mi akar lenni az a képen:
> * Rajtszám: A versenyző rajtszáma, az első karakter kódolja a versenytávot
> * Kategória: A versenyzők nem és életkor szerinti kategóriája
> * Név: A versenyző neve
> * Egyesület: A versenyzőt indító sportegyesület neve. Üres, ha a versenyzőt nem egyesület indította
> * Idő: Az elért időeredmény [óra`:`perc:másodperc]

Végül úgy döntöttem, hogy adatállomány szerkezetként értelmezem és összedobtam a BukkMaraton2019.csv teszt állományt:

Rajtszám,Kategória,Név,Egyesület,Idő
M0001,F30,András,Lóláb,3:33:33
F0001,N20,Beáta,,2:00:00
M0002,N30,Cecília,Kocc-kocc,4:32:10
F0002,F50,Dezső,,2:34:56
M0003,F30,Elemér,Lóláb,3:03:03



lista = []
with open('BukkMaraton2019.csv') as allomany:
    allomany.readline()
    for sor in allomany:
        lista.append(sor.strip().split(','))

# 2. Adjuk meg, hogy összesen hány versenyző indult a versenyen.

print('Ősszes résztvevő:', len(lista))

# a gyakorlatban ezt inkább felbontva szokták közölni

tav_terkep = {}
for futo in lista:
    if futo[0][0] not in tav_terkep:
        tav_terkep[futo[0][0]] = 0
    tav_terkep[futo[0][0]] += 1

for tav, darab in tav_terkep.items():
    print(tav, 'résztvevő:', darab)

# 3. Az időt váltsuk át másodpercbe, és adjuk meg kié volt a legjobb idő és mennyi volt az.

for futo in lista:
    ido_resz = list(map(int, futo[4].split(':')))
    futo.append(ido_resz[0] * 60 * 60 + ido_resz[1] * 60 + ido_resz[2])

legjobb = min(lista, key = lambda futo: futo[5])
print('Legjobb:', legjobb[2], legjobb[4])

# a gyakorlatban ezt inkább felbontva szokták közölni

tav_nem_terkep = {}
for futo in lista:
    if futo[0][0] + futo[1][0] not in tav_nem_terkep or tav_nem_terkep[futo[0][0] + futo[1][0]][5] > futo[5]:
        tav_nem_terkep[futo[0][0] + futo[1][0]] = futo

for tav_nem, futo in tav_nem_terkep.items():
    print(tav_nem, 'legjobb:', futo[2], futo[4])
Módosítva: 2 éve
1