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

Főoldal » Középiskola » Informatika
312
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: 3 éve
1