adatok = [] kint = set() rendszamok = set() with open('autok.txt', 'r') as forrasfajl: for sor in forrasfajl: sor = sor.strip().split() if sor[-1] == '0': sor = sor[0:4] + [ int(sor[4]) ] + [ 'ki' ] adatok.append(sor) kint.add(sor[2]) if sor[-1] == '1': sor = sor[0:4] + [ int(sor[4]) ] + [ 'be' ] adatok.append(sor) kint.remove(sor[2]) rendszamok.add(sor[2]) # 2. feladat # 1. megoldás while ciklussal i = len(adatok)-1 while adatok[i][-1] == 'be': i -= 1 print(f'\n2. feladat{adatok[i][0]}. nap rendszám: {adatok[i][2]} ') # 2. megoldás listával kivitel = [] for adat in adatok: if adat[-1] == 'ki': kivitel.append( [ adat[0], adat[2] ]) print(f'{kivitel[-1][0]}. nap rendszám: {kivitel[-1][-1]}') # 3. feladat nap = '4' # input('Adja meg a napot: ') print('\n3. feladat') print(f'Nap: {nap}\nForgalom a(z) {nap}. napon:') for adat in adatok: if adat[0] == nap: print(f'{adat[1]} {adat[2]} {adat[3]} {adat[5]}') # 4. feladat print(f'\n4. feladat\nA hónap végén {len(kint)} autót nem hoztak vissza.') # 5. feladat print('\n5. feladat') def megtett_tavok(rendszam): i = 0 while adatok[i][2] != rendszam: i += 1 j = len(adatok)-1 while adatok[j][2] != rendszam: j -= 1 return adatok[j][4] - adatok[i][4] statisztika = {} for rendszam in rendszamok: statisztika[rendszam] = megtett_tavok(rendszam) for key, value in sorted(statisztika.items()): print(key,value,'km') # 6. feladat print('\n6. feladat') def utak(i): if adatok[i][-1] == 'ki': j = i + 1 while j < len(adatok) and adatok[j][2] != adatok[i][2]: j += 1 if j < len(adatok): return adatok[j][4] - adatok[i][4] else: return 0 return 0 leghosszabb = 0 for index, adat in enumerate(adatok): ut = utak(index) if ut > leghosszabb: leghosszabb = ut szemely = adat[3] print(f'Leghosszabb út: {leghosszabb} km, személy: {szemely}') # 7. feladat rendszam = 'CEG300' # input('Adja meg a rendszámot: ') with open(rendszam+'_menetlevel.txt', 'w') as celfajl: for adat in adatok: if adat[2] == rendszam: if adat[-1] == 'ki': print(f'{adat[3]}\t{adat[0]}. {adat[1]}\t{adat[4]}', end='', file=celfajl) if adat[-1] == 'be': print(f'\t{adat[0]}. {adat[1]}\t{adat[4]}', file=celfajl)